Submission #481941

#TimeUsernameProblemLanguageResultExecution timeMemory
481941jesus_coconutAmusement Park (JOI17_amusement_park)C++17
0 / 100
26 ms3900 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); p %= 60; 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]; bool bio[N]; memset(bio, 0, sizeof bio); int p = 0; function<void(int)> dfsfind = [&](int ver) { bio[ver] = true; col[ver] = p++; p %= 60; for (auto u: adj[ver]) if (!bio[u]) { dfsfind(u); } }; dfsfind(0); memset(bio, 0, sizeof bio); long long ans = (1ll * V) << col[P]; int cnt = 0; function<void(int, int)> dfs = [&](int ver, int par) { bio[ver] = true; if (cnt >= 120) return; for (auto u: adj[ver]) if (!bio[u]) { ++cnt; long long v = Move(u); ans |= v << col[u]; dfs(u, ver); } if (cnt >= 120) return; if (par != -1) { ++cnt; Move(par); } }; dfs(P, -1); 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...