제출 #481935

#제출 시각아이디문제언어결과실행 시간메모리
481935jesus_coconutAmusement Park (JOI17_amusement_park)C++17
18 / 100
33 ms4476 KiB
#include <bits/stdc++.h> #include "Joi.h" using namespace std; using ll = long long; void Joi(int N, int M, int A[], int B[], long long X, int T) { bool bio[N]; memset(bio, 0, sizeof bio); int p = 0; vector<vector<int>> adj(N); for (int i = 0; i < M; ++i) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } for (auto &v: adj) sort(begin(v), end(v)); function<void(int)> dfs = [&](int ver) { bio[ver] = true; MessageBoard(ver, (X >> p++) & 1); for (auto u: adj[ver]) if (!bio[u]) { dfs(u); } }; dfs(0); }
#include <bits/stdc++.h> #include "Ioi.h" using namespace std; long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { vector<vector<int>> adj(N); for (int i = 0; i < M; ++i) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } for (auto &v: adj) sort(begin(v), end(v)); int col[N]; col[P] = V; bool bio[N]; memset(bio, 0, sizeof bio); function<void(int, int)> dfsfind = [&](int ver, int par) { bio[ver] = true; for (auto u: adj[ver]) if (!bio[u]) { col[u] = Move(u); dfsfind(u, ver); } if (par != -1) col[par] = Move(par); }; dfsfind(P, -1); memset(bio, 0, sizeof bio); long long ans = 0; int p = 0; function<void(int)> dfs = [&](int ver) { bio[ver] = true; if (p > 63) return; ans ^= (1ll * col[ver]) << p++; for (auto u: adj[ver]) if (!bio[u]) { dfs(u); } }; dfs(0); return ans; }
#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...