Submission #4643628
Source Code Expand
#include<cstdio> #include<vector> #include<algorithm> using namespace std; int root; vector<int> g[100001]; int parent[17][20001]; int depth[100001]; void dfs(int v,int p,int d){ parent[0][v]=p; depth[v]=d; for(int i=0;i<g[v].size();i++){ if(g[v][i]!=p){ dfs(g[v][i],v,d+1); } } } void init(int V){ dfs(root,-1,0); for(int i=0;i+1<17;i++){ for(int j=1;j<=V;j++){ if(parent[i][j]<0){ parent[i+1][j]=-1; } else{ parent[i+1][j]=parent[i][parent[i][j]]; } } } } int lca(int x,int y){ if(depth[x]>depth[y]){ swap(x,y); } for(int i=0;i<17;i++){ if((depth[y]-depth[x]) >> i&1){ y=parent[i][y]; } } if(x==y){ return x; } for(int i=16;i>=0;i--){ if(parent[i][x]!=parent[i][y]){ x=parent[i][x]; y=parent[i][y]; } } return parent[0][x]; } int main(){ int n,x,y,q,z; scanf("%d",&n); for(int i=0;i<n-1;i++){ scanf("%d %d",&x,&y); g[x].push_back(y); g[y].push_back(x); } root=1; init(n); scanf("%d",&q); for(int i=0;i<q;i++){ scanf("%d %d",&x,&y); z=lca(x,y); printf("%d\n",1+depth[x]+depth[y]-2*depth[z]); } }
Submission Info
Submission Time | |
---|---|
Task | D - 閉路 |
User | AC961009 |
Language | C++14 (Clang 3.8.0) |
Score | 0 |
Code Size | 1426 Byte |
Status | WA |
Exec Time | 107 ms |
Memory | 14336 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 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 | 22 ms | 3576 KB |
subtask0_sample02.txt | AC | 2 ms | 2688 KB |
subtask0_sample03.txt | AC | 2 ms | 2688 KB |
subtask1_01.txt | WA | 36 ms | 13696 KB |
subtask1_02.txt | WA | 36 ms | 13696 KB |
subtask1_03.txt | AC | 2 ms | 2688 KB |
subtask1_04.txt | AC | 2 ms | 2688 KB |
subtask1_05.txt | AC | 3 ms | 2816 KB |
subtask1_06.txt | AC | 3 ms | 2816 KB |
subtask1_07.txt | WA | 41 ms | 7552 KB |
subtask1_08.txt | WA | 42 ms | 7552 KB |
subtask1_09.txt | WA | 42 ms | 7424 KB |
subtask1_10.txt | WA | 42 ms | 7552 KB |
subtask1_11.txt | WA | 42 ms | 7552 KB |
subtask1_12.txt | WA | 42 ms | 7552 KB |
subtask2_01.txt | WA | 71 ms | 14336 KB |
subtask2_02.txt | WA | 71 ms | 14336 KB |
subtask2_03.txt | AC | 31 ms | 2816 KB |
subtask2_04.txt | AC | 35 ms | 2944 KB |
subtask2_05.txt | AC | 41 ms | 3072 KB |
subtask2_06.txt | AC | 42 ms | 3200 KB |
subtask2_07.txt | WA | 99 ms | 8064 KB |
subtask2_08.txt | WA | 107 ms | 8064 KB |
subtask2_09.txt | WA | 103 ms | 7808 KB |
subtask2_10.txt | WA | 106 ms | 8064 KB |
subtask2_11.txt | WA | 105 ms | 7936 KB |
subtask2_12.txt | WA | 99 ms | 8064 KB |