Submission #1367868
Source Code Expand
#include <bits/stdc++.h> using namespace std; #define MAX_V 100001 int dep[MAX_V], par[MAX_V][19]; vector<int> G[MAX_V]; void dfs(int v,int u,int d){ dep[v]=d; for(int i=0; i<G[v].size(); i++){ int w=G[v][i];if(w==u) continue; par[w][0]=v;dfs(w,v,d+1); } } int lcp(int a,int b){ if(dep[a]<dep[b]) swap(a,b); for(int i=0; i<19; i++){ if(((dep[a]-dep[b])&(1<<i))) a=par[a][i]; } if(a==b) return a; for(int i=18;i>=0;i--){ if(par[a][i]!=par[b][i]) a=par[a][i],b=par[b][i]; } return par[a][0]; } void lca() { memset(par,0,sizeof(par)); dfs(0,-1,0); for(int i=0; i<18; i++) for(int j=0; j<MAX_V; j++) par[j][i+1]=par[par[j][i]][i]; } int main() { int n; cin >> n; for(int i=0; i<n-1; i++) { int x,y; cin >> x >> y; x--;y--; G[x].push_back(y); G[y].push_back(x); } lca(); int m; cin >> m; for(int i=0; i<m; i++) { int x,y; cin >> x >> y; x--;y--; cout << dep[x]+dep[y]-2*dep[lcp(x,y)]+1 << endl; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 閉路 |
User | kzyKT |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1052 Byte |
Status | AC |
Exec Time | 360 ms |
Memory | 20480 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 | 10 ms | 9984 KB |
subtask0_sample02.txt | AC | 10 ms | 9984 KB |
subtask0_sample03.txt | AC | 10 ms | 9984 KB |
subtask1_01.txt | AC | 94 ms | 19712 KB |
subtask1_02.txt | AC | 96 ms | 19840 KB |
subtask1_03.txt | AC | 10 ms | 9984 KB |
subtask1_04.txt | AC | 10 ms | 9984 KB |
subtask1_05.txt | AC | 10 ms | 9984 KB |
subtask1_06.txt | AC | 11 ms | 10112 KB |
subtask1_07.txt | AC | 101 ms | 13696 KB |
subtask1_08.txt | AC | 102 ms | 13568 KB |
subtask1_09.txt | AC | 100 ms | 13568 KB |
subtask1_10.txt | AC | 103 ms | 13568 KB |
subtask1_11.txt | AC | 102 ms | 13568 KB |
subtask1_12.txt | AC | 102 ms | 13568 KB |
subtask2_01.txt | AC | 312 ms | 20480 KB |
subtask2_02.txt | AC | 320 ms | 20352 KB |
subtask2_03.txt | AC | 212 ms | 10240 KB |
subtask2_04.txt | AC | 224 ms | 10240 KB |
subtask2_05.txt | AC | 236 ms | 10368 KB |
subtask2_06.txt | AC | 239 ms | 10368 KB |
subtask2_07.txt | AC | 351 ms | 13952 KB |
subtask2_08.txt | AC | 344 ms | 13824 KB |
subtask2_09.txt | AC | 351 ms | 13952 KB |
subtask2_10.txt | AC | 355 ms | 13952 KB |
subtask2_11.txt | AC | 358 ms | 13952 KB |
subtask2_12.txt | AC | 360 ms | 13952 KB |