Submission #128119

#TimeUsernameProblemLanguageResultExecution timeMemory
128119arnold518Amusement Park (JOI17_amusement_park)C++14
18 / 100
3101 ms57448 KiB
#include "Joi.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 1e4; static int N, M; static ll X; static vector<int> adj[MAXN+10], tree[MAXN+10]; static unordered_set<int> group[MAXN+10]; static int dis[MAXN+10], invdis[MAXN+10], par[MAXN+10], col[MAXN+10]; static int cnt=0; static void makeTree(int now) { int i, j; dis[now]=cnt++; invdis[dis[now]]=now; if(dis[now]<60) { group[now].insert(now); col[now]=dis[now]; } for(int nxt : adj[now]) { if(dis[nxt]!=-1) continue; makeTree(nxt); tree[now].push_back(nxt); tree[nxt].push_back(now); par[nxt]=now; } } static int leaf; static void dfs(int now, int bef, int grp) { if(cnt==60) { leaf=now; return; } cnt++; for(int nxt : tree[now]) { if(cnt==61) return; if(nxt==bef) continue; if(!group[grp].count(nxt)) continue; dfs(nxt, now, grp); } } static void color() { int i, j; unordered_set<int> start; for(i=0; i<N; i++) if(dis[i]<60) start.insert(*group[i].begin()); for(i=0; i<N; i++) if(dis[i]<60) group[i]=start; for(i=60; i<N; i++) { int now=invdis[i]; cnt=1; leaf=0; dfs(par[now], now, par[now]); for(int it : group[par[now]]) if(it!=leaf) group[now].insert(it); col[now]=col[leaf]; group[now].insert(now); } } void Joi(int n, int m, int A[], int B[], ll x, int T) { int i, j; N=n; M=m; X=x; for(i=0; i<M; i++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } memset(dis, -1, sizeof(dis)); memset(col, -1, sizeof(col)); makeTree(1); color(); for(i=0; i<N; i++) { if(x&(1ll<<col[i])) MessageBoard(i, 1); else MessageBoard(i, 0); } }
#include "Ioi.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 1e4; static int N, M, P, V; static vector<int> adj[MAXN+10], tree[MAXN+10]; static unordered_set<int> group[MAXN+10]; static int dis[MAXN+10], invdis[MAXN+10], par[MAXN+10], col[MAXN+10]; static ll ans; static int cnt=0; static void makeTree(int now) { int i, j; dis[now]=cnt++; invdis[dis[now]]=now; if(dis[now]<60) { group[now].insert(now); col[now]=dis[now]; } for(int nxt : adj[now]) { if(dis[nxt]!=-1) continue; makeTree(nxt); tree[now].push_back(nxt); tree[nxt].push_back(now); par[nxt]=now; } } static int leaf; static void dfs(int now, int bef, int grp) { if(cnt==60) { leaf=now; return; } cnt++; for(int nxt : tree[now]) { if(cnt==61) return; if(nxt==bef) continue; if(!group[grp].count(nxt)) continue; dfs(nxt, now, grp); } } static void color() { int i, j; unordered_set<int> start; for(i=0; i<N; i++) if(dis[i]<60) start.insert(*group[i].begin()); for(i=0; i<N; i++) if(dis[i]<60) group[i]=start; for(i=60; i<N; i++) { int now=invdis[i]; cnt=1; leaf=0; dfs(par[now], now, par[now]); for(int it : group[par[now]]) if(it!=leaf) group[now].insert(it); col[now]=col[leaf]; group[now].insert(now); } } static void tour(int now, int bef) { for(int nxt : tree[now]) { if(nxt==bef) continue; if(!group[P].count(nxt)) continue; ans|=(ll)Move(nxt)<<col[nxt]; tour(nxt, now); ans|=(ll)Move(now)<<col[now]; } } ll Ioi(int n, int m, int A[], int B[], int p, int v, int T) { int i, j; N=n; M=m; P=p; V=v; for(i=0; i<M; i++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } memset(dis, -1, sizeof(dis)); memset(col, -1, sizeof(col)); makeTree(1); color(); ans|=(ll)V<<col[P]; tour(P, P); return ans; }

Compilation message (stderr)

Joi.cpp: In function 'void makeTree(int)':
Joi.cpp:21:9: warning: unused variable 'i' [-Wunused-variable]
     int i, j;
         ^
Joi.cpp:21:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
Joi.cpp: In function 'void color()':
Joi.cpp:56:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
Joi.cpp: In function 'void Joi(int, int, int*, int*, ll, int)':
Joi.cpp:74:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^

Ioi.cpp: In function 'void makeTree(int)':
Ioi.cpp:21:9: warning: unused variable 'i' [-Wunused-variable]
     int i, j;
         ^
Ioi.cpp:21:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
Ioi.cpp: In function 'void color()':
Ioi.cpp:56:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
Ioi.cpp: In function 'll Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:86:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
#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...