제출 #59208

#제출 시각아이디문제언어결과실행 시간메모리
59208MikaeelAmusement Park (JOI17_amusement_park)C++14
10 / 100
41 ms4896 KiB
#include "Joi.h" #include<bits/stdc++.h> #define rep(i,l,r) for(int i=l;i<r;i++) #define pb push_back #define bit(x,i) ((x>>i)&1ll) using namespace std; typedef long long num; typedef pair<int,int> point; const int maxn=1e4+10,lg=60; vector<int> G[maxn]; int te=0; num x; bool mark[maxn]; void dfs(int a){ mark[a]=1; MessageBoard(a,bit(x,te)); te=(te+1)%lg; for(int b:G[a]){ if(!mark[b]){ dfs(b); } } } void Joi(int N, int M, int A[], int B[], num X, int T) { x=X; for(int i = 0; i < M; i++){ G[A[i]].pb(B[i]); G[B[i]].pb(A[i]); } dfs(55); }
#include "Ioi.h" #include<bits/stdc++.h> #define rep(i,l,r) for(int i=l;i<r;i++) #define pb push_back #define bit(x,i) ((x>>i)&1ll) using namespace std; typedef long long num; typedef pair<int,int> point; const int maxn=1e4+10,lg=60; vector<int> G0[maxn]; int te0=0; num x0; bool mark0[maxn]; int v,t[maxn],size0[maxn],par[maxn]; int root; void dfs0(int a){ mark0[a]=1; t[a]=te0; te0=(te0+1)%lg; size0[a]=1; for(int b:G0[a]){ if(!mark0[b]){ par[b]=a; dfs0(b); size0[a]+=size0[b]; } } } int ss=0; void dfs1(int a){ if(ss==lg) return; mark0[a]=1; if(v){ x0|=1ll<<t[a]; } ss++; for(int b:G0[a]){ if(!mark0[b] && par[a]!=b){ v=Move(b); dfs1(b); if(ss==lg) return; v=Move(a); } } } long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { v=V; for(int i = 0; i < M; i++){ G0[A[i]].pb(B[i]); G0[B[i]].pb(A[i]); } dfs0(55); fill(mark0,mark0+N,0); root=P; while(size0[root]<lg){ root=par[root]; v=Move(root); } dfs1(root); return x0; }
#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...