Submission #933621

#TimeUsernameProblemLanguageResultExecution timeMemory
933621vjudge1Speedrun (RMI21_speedrun)C++17
29 / 100
95 ms2084 KiB
#include <bits/stdc++.h> #include "speedrun.h" using namespace std; using ll = long long; using vll = vector <ll>; void assignHints (int subtask, int n, int u[], int v[]) { if (subtask==1){setHintLen(n); for (int i = 1; i <= n-1; i++) { setHint(u[i], v[i], true); setHint(v[i], u[i], true); } return; } if (subtask==2) { setHintLen(20); int freq[n+1]{}; for (int i=1; i <= n-1; i++) { freq[u[i]]++; freq[v[i]]++; } int u = max_element(freq, freq+n+1)-freq; for (int i=1; i <= n; i++) { for (int bit=0; bit < 20; bit++) { setHint(i, bit+1, u>>bit&1); } } return;} } const static void dfs1 (int u, int par, int n) { for (int v = 1; v <= n; v++) { if (v == u) continue; if (v == par) continue; if (getHint(v)) { goTo(v); dfs1(v, u, n); goTo(u); } } return; }; void speedrun (int subtask, int n, int at) { if (subtask==1) {dfs1(at, at, n); return;} if (subtask==2) {int root=0; for (int bit=0; bit < 20; bit++) { root |= getHint(bit+1)<<bit; } goTo(root); for (int u=1; u <= n; u++) { if (u==root)continue; goTo(u); goTo(root); } return;} return; }
#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...