ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#207215 | #3731. 树的直径 | one_zero_four_zero | 100 | 2427ms | 40324kb | C++11 | 1.1kb | 2024-07-27 19:28:52 | 2024-07-27 20:25:18 |
answer
#include<bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
int n, ans = 0;
int pos1 = 1, pos2 = 0;
int fa[1000006];
int h[1000006];
int st[25][1000006];
vector<int> E[1000006];
int LCA(int u, int v){
if (h[u] > h[v]) swap(u, v);
while (h[v] > h[u]){
v = st[__lg(h[v] - h[u])][v];
}
if (u == v) return u;
for (int i = __lg(h[u]); i >= 0; i --){
if (st[i][u] == st[i][v]) continue;
u = st[i][u], v = st[i][v];
}
return st[0][u];
}
int getdis(int u, int v){
return h[u] + h[v] - 2 * h[LCA(u, v)];
}
int main(){
#ifndef ONLINE_JUDGE
freopen("../data.in","r",stdin);
freopen("../data.out","w",stdout);
#endif
scanf("%d", &n);
h[1] = 1;
for (int i = 2; i <= n; i ++){
scanf("%d", &fa[i]);
st[0][i] = fa[i], h[i] = h[fa[i]] + 1;
for (int j = 1; j <= __lg(n); j ++){
st[j][i] = st[j - 1][st[j - 1][i]];
}
if (getdis(pos1, i) > ans){
pos2 = i;
ans = getdis(pos1, i);
}
if (getdis(pos2, i) > ans){
pos1 = i;
ans = getdis(pos2, i);
}
printf("%d ", ans);
}
printf("\n");
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 9ms
memory: 24708kb
input:
1000 1 2 3 3 5 4 6 7 8 6 10 11 10 9 11 14 15 16 16 17 17 20 15 15 20 25 21 28 19 18 21 32 22 26 34 2...
output:
1 2 3 3 4 4 5 6 7 7 8 8 8 9 9 10 11 11 11 12 12 12 12 12 12 13 14 15 15 15 15 15 15 15 15 15 15 15 1...
result:
ok 999 tokens
Test #2:
score: 5
Accepted
time: 3ms
memory: 24708kb
input:
1000 1 1 2 3 4 4 7 5 9 10 8 10 9 9 10 16 13 13 16 16 13 13 17 24 19 24 16 20 20 29 19 30 33 23 21 33...
output:
1 2 3 4 5 5 6 7 8 9 10 10 10 10 10 11 11 11 11 11 11 11 12 13 13 13 13 13 13 13 13 13 14 14 14 14 14...
result:
ok 999 tokens
Test #3:
score: 5
Accepted
time: 3ms
memory: 24708kb
input:
1000 1 1 3 4 3 6 7 5 7 6 9 10 9 12 11 13 13 18 13 18 17 15 22 15 15 20 27 19 29 21 19 23 32 30 22 25...
output:
1 2 3 4 4 4 5 6 6 6 7 8 8 9 9 10 10 11 11 11 11 12 13 13 13 13 13 13 14 14 14 15 15 16 16 16 16 16 1...
result:
ok 999 tokens
Test #4:
score: 5
Accepted
time: 8ms
memory: 24712kb
input:
1000 1 1 2 3 3 4 5 7 7 10 10 11 8 12 12 12 11 18 18 20 14 19 23 15 22 18 25 22 29 22 25 23 24 34 22 ...
output:
1 2 3 4 4 5 6 7 7 8 8 9 10 10 10 10 10 11 11 12 13 13 14 14 15 15 15 15 16 16 16 16 17 18 18 18 18 1...
result:
ok 999 tokens
Test #5:
score: 5
Accepted
time: 146ms
memory: 40324kb
input:
200000 1 2 2 1 4 4 2 2 2 7 4 8 11 7 1 6 10 5 19 12 9 22 1 4 8 23 15 24 18 12 21 2 14 13 1 4 23 38 2 ...
output:
1 2 2 3 4 4 4 4 4 5 5 5 6 6 6 6 6 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10 10 10 10 10...
result:
ok 199999 tokens
Test #6:
score: 5
Accepted
time: 148ms
memory: 40320kb
input:
200000 1 1 1 4 5 2 4 1 7 9 8 4 12 11 13 15 9 16 16 19 9 9 10 14 8 25 9 26 10 26 7 17 11 2 31 27 14 3...
output:
1 2 2 3 4 5 5 5 6 6 6 6 7 7 7 8 8 8 8 9 9 9 9 9 9 10 10 10 10 10 10 11 11 11 11 12 12 12 12 12 12 12...
result:
ok 199999 tokens
Test #7:
score: 5
Accepted
time: 164ms
memory: 40324kb
input:
200000 1 1 2 2 2 4 1 3 5 4 6 4 6 2 7 4 5 6 12 1 14 16 21 8 24 11 12 20 1 1 4 16 2 15 30 36 24 12 16 ...
output:
1 2 3 3 3 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 10 1...
result:
ok 199999 tokens
Test #8:
score: 5
Accepted
time: 155ms
memory: 40320kb
input:
200000 1 2 1 4 5 6 1 3 5 7 8 1 13 8 14 15 8 2 12 14 5 5 3 21 24 1 25 20 2 29 16 19 4 10 33 32 26 31 ...
output:
1 2 3 4 5 6 6 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 ...
result:
ok 199999 tokens
Test #9:
score: 5
Accepted
time: 150ms
memory: 40324kb
input:
200000 1 1 3 3 5 5 6 8 8 9 11 12 12 14 15 16 16 17 19 20 21 22 22 23 25 25 27 28 29 29 30 31 32 34 3...
output:
1 2 3 3 4 4 5 6 6 7 8 9 9 10 11 12 12 13 14 15 16 17 17 18 19 19 20 21 22 22 23 23 24 25 25 26 27 27...
result:
ok 199999 tokens
Test #10:
score: 5
Accepted
time: 143ms
memory: 40320kb
input:
200000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens
Test #11:
score: 5
Accepted
time: 153ms
memory: 40320kb
input:
200000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens
Test #12:
score: 5
Accepted
time: 77ms
memory: 40324kb
input:
200000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens
Test #13:
score: 5
Accepted
time: 145ms
memory: 40324kb
input:
200000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens
Test #14:
score: 5
Accepted
time: 140ms
memory: 40320kb
input:
200000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens
Test #15:
score: 5
Accepted
time: 191ms
memory: 40320kb
input:
200000 1 2 3 4 5 6 7 8 9 9 10 11 13 14 15 16 16 18 18 19 20 22 21 22 23 24 25 27 27 28 30 32 30 32 3...
output:
1 2 3 4 5 6 7 8 9 9 10 10 11 12 13 14 14 15 15 16 16 17 17 17 18 18 18 19 19 19 20 21 21 21 22 23 24...
result:
ok 199999 tokens
Test #16:
score: 5
Accepted
time: 183ms
memory: 40324kb
input:
200000 1 2 3 4 5 6 7 8 9 9 10 12 12 14 14 15 16 18 19 18 20 21 21 22 25 26 27 26 29 30 29 29 30 31 3...
output:
1 2 3 4 5 6 7 8 9 9 10 11 11 12 12 13 13 14 15 15 16 16 16 17 18 19 20 20 20 21 21 21 21 22 23 24 24...
result:
ok 199999 tokens
Test #17:
score: 5
Accepted
time: 110ms
memory: 40324kb
input:
200000 1 2 3 4 5 6 7 8 9 10 10 11 13 14 14 15 17 18 19 18 21 21 22 22 23 24 26 27 29 28 29 32 30 32 ...
output:
1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 17 17 17 18 18 18 19 19 20 21 21 21 22 22 22 22 23 2...
result:
ok 199999 tokens
Test #18:
score: 5
Accepted
time: 175ms
memory: 40324kb
input:
200000 1 2 3 4 5 6 7 8 9 10 10 11 13 14 15 16 17 18 19 20 19 22 23 22 25 26 26 26 29 28 28 31 30 34 ...
output:
1 2 3 4 5 6 7 8 9 10 10 11 12 13 14 15 16 17 18 19 19 19 20 20 20 21 21 21 22 22 22 23 23 24 25 25 2...
result:
ok 199999 tokens
Test #19:
score: 5
Accepted
time: 162ms
memory: 40320kb
input:
200000 1 2 3 4 5 6 7 8 9 10 10 12 12 14 15 16 17 18 18 19 20 21 21 22 25 24 25 26 27 29 28 31 31 31 ...
output:
1 2 3 4 5 6 7 8 9 10 10 11 11 12 13 14 15 16 16 17 17 18 18 18 19 19 19 20 20 21 21 22 22 22 22 23 2...
result:
ok 199999 tokens
Test #20:
score: 5
Accepted
time: 162ms
memory: 40320kb
input:
200000 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3...
result:
ok 199999 tokens