Submission #800464

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8004642023-08-01 15:08:50acatmeowmeowCat Exercise (JOI23_ho_t4)C++11
100 / 100
327 ms126200 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5, KMAX = 20;
int n, h[N + 5], euler[2*N + 5], lg[2*N + 5], tin[N + 5], tout[N + 5], timer = 1, d[N + 5], table[2*N + 5][KMAX + 5];
vector<int> adj[N + 5];
void dfs1(int u, int e) {
tin[u] = ++timer;
euler[timer] = u;
for (auto&v : adj[u]) {
if (v == e) continue;
d[v] = d[u] + 1;
dfs1(v, u);
euler[++timer] = u;
}
tout[u] = timer;
}
int combine(int x, int y) { return d[x] < d[y] ? x : y; }
void build(int n) {
lg[1] = 0;
for (int i = 2; i <= n; i++) lg[i] = lg[i/2] + 1;
for (int i = 1; i <= n; i++) table[i][0] = euler[i];
for (int j = 1; j <= KMAX; j++) {
for (int i = 1; i + (1ll << j) - 1 <= n; i++) {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...