Submission #2520708
Source Code Expand
import sys sys.setrecursionlimit(10 ** 7) N = int(input()) G = [[] for i in range(N)] for i in range(N-1): x, y = map(int, input().split()) x, y = x-1, y-1 G[x].append(y) G[y].append(x) parent = [[] for i in range(N)] # 親を2^k回辿って到達する頂点 depth = [None] * N stack = [] def walk(i): rec_size = len(stack) depth[i] = rec_size # 親を2^k回辿る k = 0 while 2**k <= rec_size: parent[i].append(stack[rec_size-2**k]) k += 1 stack.append(i) for ni in G[i]: if depth[ni] is not None: continue walk(ni) del stack[-1] walk(0) Q = int(input()) for i in range(Q): a, b = map(int, input().split()) a, b = a-1, b-1 if depth[a] > depth[b]: # 深いほうが後ろ a, b = b, a depth_add = depth[a] + depth[b] depth_diff = depth[b] - depth[a] while depth_diff > 0: k = 1 while 2**k < depth_diff: k += 1 k -= 1 b = parent[b][k] depth_diff -= 2**k while a != b: k = 1 le = len(parent[a]) while le > k and parent[a][k] != parent[b][k]: k += 1 k -= 1 a = parent[a][k] b = parent[b][k] print(depth_add - 2*depth[a] + 1)
Submission Info
Submission Time | |
---|---|
Task | D - 閉路 |
User | AT274 |
Language | Python (3.4.3) |
Score | 30 |
Code Size | 1353 Byte |
Status | TLE |
Exec Time | 2113 ms |
Memory | 137500 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 0 / 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 | 17 ms | 3188 KB |
subtask0_sample02.txt | AC | 17 ms | 3064 KB |
subtask0_sample03.txt | AC | 17 ms | 3064 KB |
subtask1_01.txt | AC | 1672 ms | 137500 KB |
subtask1_02.txt | AC | 1650 ms | 137500 KB |
subtask1_03.txt | AC | 17 ms | 3064 KB |
subtask1_04.txt | AC | 18 ms | 3188 KB |
subtask1_05.txt | AC | 26 ms | 3316 KB |
subtask1_06.txt | AC | 27 ms | 3572 KB |
subtask1_07.txt | AC | 877 ms | 37052 KB |
subtask1_08.txt | AC | 868 ms | 36148 KB |
subtask1_09.txt | AC | 1046 ms | 37052 KB |
subtask1_10.txt | AC | 1151 ms | 41108 KB |
subtask1_11.txt | AC | 1226 ms | 44488 KB |
subtask1_12.txt | AC | 1141 ms | 40164 KB |
subtask2_01.txt | TLE | 2113 ms | 137496 KB |
subtask2_02.txt | TLE | 2113 ms | 137480 KB |
subtask2_03.txt | AC | 1104 ms | 3316 KB |
subtask2_04.txt | AC | 1212 ms | 3316 KB |
subtask2_05.txt | AC | 1722 ms | 3700 KB |
subtask2_06.txt | AC | 1909 ms | 3956 KB |
subtask2_07.txt | TLE | 2106 ms | 37296 KB |
subtask2_08.txt | TLE | 2106 ms | 36412 KB |
subtask2_09.txt | TLE | 2106 ms | 37276 KB |
subtask2_10.txt | TLE | 2106 ms | 41360 KB |
subtask2_11.txt | TLE | 2106 ms | 44640 KB |
subtask2_12.txt | TLE | 2105 ms | 42220 KB |