제출 #57627

#제출 시각아이디문제언어결과실행 시간메모리
57627hamzqq9Amusement Park (JOI17_amusement_park)C++14
80 / 100
50 ms6696 KiB
#include "Joi.h"
 
#include<bits/stdc++.h>
using namespace std;
 
#define ll long long
#define st first
#define nd second
#define pb push_back
#define MAX 20005
#define sz(x) ((int)x.size())
#define pw(x) (1LL<<(x))
 
static int Time;
static int beg[MAX];
static bool Bit[MAX],vis[MAX];
static vector<int> v[MAX];

static void createbits(ll x) {

	for(int i=0;i<60;i++) Bit[i]=((x>>i)&1);

}

static void dfs(int node) {

	vis[node]=true;

	beg[node]=Time++;

	MessageBoard(node,Bit[beg[node]%60]);

	for(int i:v[node]) {

		if(vis[i]) continue ;

		dfs(i);

	}

}

void Joi(int N, int M, int A[], int B[], long long X, int T) {
  	
	createbits(X);

	for(int i=0;i<M;i++) {

		v[A[i]].pb(B[i]);
		v[B[i]].pb(A[i]);

	}

	dfs(31);

}
#include "Ioi.h"
 
#include<bits/stdc++.h>
using namespace std;
 
#define ll long long
#define st first
#define nd second
#define pb push_back
#define MAX 20005
#define sz(x) ((int) x.size())
#define pw(x) (1LL<<(x))
 
static int sub[MAX],Par[MAX],beg[MAX];
static int Time,total,V,P;
static ll X;
static vector<int> v[MAX],v2[MAX];
static bool vis[MAX];

static void dfs2(int node) {

	total++;

	X|=V*pw(beg[node]%60);

	for(int i:v2[node]) {

		if(total==60) continue ;

		V=Move(i);

		dfs2(i);

		if(total<60) V=Move(node);

	}

}

static void solve() {

	while(1) {

		if(sub[P]>=60) break ;

		P=Par[P];

		V=Move(P);
	
	}

	dfs2(P);

}

static void dfs(int node,int ata) {

	vis[node]=true;

	sub[node]=1;

	beg[node]=Time++;

	Par[node]=ata;

	if(~ata) v2[ata].pb(node);

	for(int i:v[node]) {

		if(vis[i]) continue ;

		dfs(i,node);

		sub[node]+=sub[i];

	}

}

long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {
  
	for(int i=0;i<M;i++) {

		v[A[i]].pb(B[i]);
		v[B[i]].pb(A[i]);

	}

	::P=P;
	::V=V;

	dfs(31,-1);

	solve();

	return X;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...