Submission #3629067
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i <= (n); i++) #define co(x) cout << (x) << "\n" #define cosp(x) cout << (x) << " " #define ce(x) cerr << (x) << "\n" #define cesp(x) cerr << (x) << " " #define pb push_back #define mp make_pair #define Would #define you #define please vector<int> E[100001]; int P[20][100001]; int D[100001]; int oya(int A, int B) { if (B == 0) return A; int kazu = 0; int kari = B; while (kari > 1) { kazu++; kari /= 2; } return oya(P[kazu][A], B - (1 << kazu)); } void dfs(int A, int B, int C) { if (D[A] == 0) { D[A] = B; P[0][A] = C; int mae = C; rep(i, 19) { P[i + 1][A] = oya(mae, 1 << i); mae = P[i + 1][A]; } for (int i : E[A]) dfs(i, B + 1, A); } } int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; rep(i, N - 1) { int x, y; cin >> x >> y; E[x].pb(y); E[y].pb(x); } dfs(1, 1, 0); int Q; cin >> Q; rep(i, Q) { int a, b; cin >> a >> b; if (D[a] > D[b]) swap(a, b); int sa = D[b] - D[a]; b = oya(b, sa); int L = 0; int R = D[a]; while (L < R) { int half = (L + R) / 2; if (oya(a, half) == oya(b, half)) R = half; else L = half + 1; } co(L * 2 + sa + 1); } Would you please return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 閉路 |
User | uzzy |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1413 Byte |
Status | AC |
Exec Time | 172 ms |
Memory | 19328 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt |
Subtask2 | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 3 ms | 8832 KB |
subtask0_sample02.txt | AC | 3 ms | 8832 KB |
subtask0_sample03.txt | AC | 3 ms | 8832 KB |
subtask1_01.txt | AC | 48 ms | 18560 KB |
subtask1_02.txt | AC | 49 ms | 18560 KB |
subtask1_03.txt | AC | 3 ms | 8832 KB |
subtask1_04.txt | AC | 3 ms | 8832 KB |
subtask1_05.txt | AC | 4 ms | 8832 KB |
subtask1_06.txt | AC | 4 ms | 8832 KB |
subtask1_07.txt | AC | 75 ms | 14080 KB |
subtask1_08.txt | AC | 76 ms | 13952 KB |
subtask1_09.txt | AC | 83 ms | 13952 KB |
subtask1_10.txt | AC | 72 ms | 13952 KB |
subtask1_11.txt | AC | 76 ms | 13952 KB |
subtask1_12.txt | AC | 77 ms | 13952 KB |
subtask2_01.txt | AC | 75 ms | 19328 KB |
subtask2_02.txt | AC | 87 ms | 19200 KB |
subtask2_03.txt | AC | 24 ms | 8960 KB |
subtask2_04.txt | AC | 27 ms | 9088 KB |
subtask2_05.txt | AC | 40 ms | 9216 KB |
subtask2_06.txt | AC | 42 ms | 9216 KB |
subtask2_07.txt | AC | 104 ms | 14336 KB |
subtask2_08.txt | AC | 119 ms | 14336 KB |
subtask2_09.txt | AC | 140 ms | 14336 KB |
subtask2_10.txt | AC | 155 ms | 14336 KB |
subtask2_11.txt | AC | 172 ms | 14336 KB |
subtask2_12.txt | AC | 155 ms | 14336 KB |