Submission #401858

#TimeUsernameProblemLanguageResultExecution timeMemory
401858timmyfengAmusement Park (JOI17_amusement_park)C++17
18 / 100
28 ms3892 KiB
#include <bits/stdc++.h> using namespace std; #include "Joi.h" vector<vector<int>> adj_joi; vector<bool> visited_joi; long long x_joi; void dfs(int u) { MessageBoard(u, x_joi % 2); x_joi /= 2; visited_joi[u] = true; for (auto c : adj_joi[u]) { if (!visited_joi[c]) { dfs(c); } } } void Joi(int n, int m, int *a, int *b, long long x, int t) { adj_joi.resize(n); visited_joi.resize(n); for (int i = 0; i < m; ++i) { adj_joi[a[i]].push_back(b[i]); adj_joi[b[i]].push_back(a[i]); } x_joi = x; dfs(0); }
#include <bits/stdc++.h> using namespace std; #include "Ioi.h" const int L = 60; vector<vector<int>> adj_ioi; long long ans_ioi, bit_ioi; vector<bool> visited_ioi; vector<int> path_ioi; int v_ioi; bool dfs_find(int u) { visited_ioi[u] = true; if (u == 0) { return true; } for (auto c : adj_ioi[u]) { if (!visited_ioi[c] && dfs_find(c)) { path_ioi.push_back(c); return true; } } return false; } bool dfs_read(int u) { ans_ioi += v_ioi * bit_ioi; bit_ioi *= 2; if (__lg(bit_ioi) == L) { return true; } visited_ioi[u] = true; for (auto c : adj_ioi[u]) { if (!visited_ioi[c]) { v_ioi = Move(c); if (dfs_read(c)) { return true; } v_ioi = Move(u); } } return false; } long long Ioi(int n, int m, int *a, int *b, int p, int v, int t) { adj_ioi.resize(n); visited_ioi.resize(n); for (int i = 0; i < m; ++i) { adj_ioi[a[i]].push_back(b[i]); adj_ioi[b[i]].push_back(a[i]); } dfs_find(p); v_ioi = v; reverse(path_ioi.begin(), path_ioi.end()); for (auto u : path_ioi) { v_ioi = Move(u); } ans_ioi = 0, bit_ioi = 1; visited_ioi.assign(n, false); dfs_read(0); return ans_ioi; }
#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...