QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#781935 | #5124. Tree | guodong# | AC ✓ | 195ms | 144156kb | C++17 | 1.8kb | 2024-11-25 18:04:11 | 2024-11-25 18:04:17 |
Judging History
answer
#include <bits/stdc++.h>
#define rep(x, l, r) for(int x = l; x <= r; x++)
#define repd(x, r, l) for(int x = r; x >= l; x--)
#define pb push_back
#define SZ(x) ((int)x.size())
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e6 + 5;
int n, cnt;
int head[MAXN], nxt[MAXN], to[MAXN];
int son[MAXN], sum[MAXN], s[MAXN], dep[MAXN];
vector<int> ve[MAXN];
struct node{
int num, id;
} a[MAXN];
bool cmp(node a, node b){
return a.num > b.num;
}
void addedge(int u, int v){
nxt[cnt] = head[u];
head[u] = cnt;
to[cnt] = v;
cnt++;
}
void dfs1(int u){
son[u] = -1; sum[u] = 1;
for(int e = head[u]; e != -1; e = nxt[e]){
int v = to[e];
dep[v] = dep[u] + 1;
dfs1(v);
sum[u] = max(sum[u], sum[v] + 1);
if(son[u] == -1 || sum[v] > sum[son[u]]) son[u] = v;
}
}
void dfs2(int u, int t){
ve[t].pb(u);
if(son[u] == -1) return;
dfs2(son[u], t);
for(int e = head[u]; e != -1; e = nxt[e]){
int v = to[e];
if(v == son[u]) continue;
dfs2(v, v);
}
}
int main(){
int t;
scanf("%d", &t);
while(t--){
scanf("%d", &n);
cnt = 0;
rep(i, 1, n){
head[i] = -1;
s[i] = 0;
dep[i] = 0;
ve[i].clear();
}
rep(i, 2, n){
int x;
scanf("%d", &x);
addedge(x, i);
}
dep[1] = 0;
dfs1(1);
dfs2(1, 1);
rep(i, 1, n){
a[i] = (node){SZ(ve[i]), i};
}
sort(a + 1, a + n + 1, cmp);
int ans = n;
rep(i, 1, n){
ans = min(ans, i - 1 + a[i].num);
}
printf("%d\n", ans);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 40816kb
input:
2 7 1 1 2 2 2 3 5 1 2 3 4
output:
3 1
result:
ok 2 number(s): "3 1"
Test #2:
score: 0
Accepted
time: 27ms
memory: 42828kb
input:
46234 1 2 1 3 1 1 4 1 1 1 5 1 1 1 1 6 1 1 1 1 1 7 1 1 1 1 1 1 8 1 1 1 1 1 1 1 9 1 1 1 1 1 1 1 1 9 1 1 1 1 1 1 1 2 9 1 1 1 1 1 1 1 3 9 1 1 1 1 1 1 1 4 9 1 1 1 1 1 1 1 5 9 1 1 1 1 1 1 1 6 9 1 1 1 1 1 1 1 7 9 1 1 1 1 1 1 1 8 8 1 1 1 1 1 1 2 9 1 1 1 1 1 1 2 1 9 1 1 1 1 1 1 2 2 9 1 1 1 1 1 1 2 3 9 1 1 1...
output:
1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 2 2 2 3 2 3 3 3 3 2 2 2 3 3 2 3 3 3 2 2 2 3 3 3 2 3 3 2 2 2 3 3 3 3 2 3 2 2 2 3 3 3 3 3 2 2 2 2 2 2 3 3 3 3 2 3 2 2 2 3 3 3 3 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 3 3 3 3 2 2 2 2 2 3 2 3 3 3 2 3 3 3 3 3 3 3 ...
result:
ok 46234 numbers
Test #3:
score: 0
Accepted
time: 134ms
memory: 144156kb
input:
1 1000000 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10...
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 101ms
memory: 93608kb
input:
1 1000000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
output:
2
result:
ok 1 number(s): "2"
Test #5:
score: 0
Accepted
time: 121ms
memory: 66456kb
input:
1 1000000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
output:
1000
result:
ok 1 number(s): "1000"
Test #6:
score: 0
Accepted
time: 168ms
memory: 68540kb
input:
1 1000000 1 1 1 2 3 4 5 6 7 3 6 8 9 10 13 11 12 13 14 15 8 16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 51 39 54 55 56 57 58 59 60 61 68 62 63 64 65 66 67 68 69 70 71 59 72 73 74 75 76 77 78 79 80 81 82 32 23 83 84 85 86 87 88 8...
output:
1405
result:
ok 1 number(s): "1405"
Test #7:
score: 0
Accepted
time: 173ms
memory: 68556kb
input:
1 1000000 1 1 1 1 2 3 4 5 6 7 8 9 10 11 14 1 12 13 14 15 19 16 17 18 19 20 21 20 22 23 24 25 26 27 28 20 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 29 46 47 48 49 50 51 52 53 54 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 51 76 77 78 79 80 81 82 83 84 85 86 23 87 88 89 ...
output:
1404
result:
ok 1 number(s): "1404"
Test #8:
score: 0
Accepted
time: 195ms
memory: 68488kb
input:
1 1000000 1 1 1 2 4 3 4 5 6 7 8 9 10 5 10 11 12 13 11 17 14 15 16 17 18 19 20 21 22 23 24 25 26 27 14 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 16 45 46 47 48 49 50 51 52 53 17 54 55 56 57 58 59 60 61 62 63 40 67 64 65 66 67 68 69 70 71 72 73 74 54 35 75 76 77 78 79 80 81 82 83 84 85 86 87 ...
output:
1406
result:
ok 1 number(s): "1406"
Test #9:
score: 0
Accepted
time: 134ms
memory: 49680kb
input:
7 142857 1 1 2 1 2 3 4 4 8 5 6 7 8 9 10 11 12 13 14 7 15 15 16 17 18 19 20 21 22 23 24 25 26 27 28 17 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 14 55 56 57 58 59 60 61 62 63 27 69 43 64 65 66 67 68 69 70 71 72 73 57 15 74 75 76 77 78 79 80 81 82 83 84 85 86 36 87 ...
output:
528 527 526 527 527 527 527
result:
ok 7 numbers
Test #10:
score: 0
Accepted
time: 130ms
memory: 46620kb
input:
10 100000 1 1 2 2 2 3 4 5 6 7 8 6 8 9 10 11 12 13 14 15 16 17 22 18 19 20 21 22 23 8 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 27 39 40 41 42 43 44 45 46 39 39 48 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 59 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89...
output:
439 439 441 439 441 441 442 441 441 440
result:
ok 10 numbers
Test #11:
score: 0
Accepted
time: 104ms
memory: 46556kb
input:
15 66666 1 2 3 1 2 3 4 5 6 1 7 8 9 10 2 11 12 13 14 15 16 17 18 19 20 21 19 22 23 24 25 26 27 34 28 29 30 31 32 33 34 10 35 36 37 38 39 40 41 42 22 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 57 20 62 63 64 65 66 67 68 69 70 71 77 72 73 74 75 76 77 78 79 80 81 82 83 77 84 85 86 87 88 89...
output:
360 358 359 359 359 359 359 360 359 360 359 361 358 360 359
result:
ok 15 numbers
Test #12:
score: 0
Accepted
time: 94ms
memory: 46128kb
input:
57 17543 1 1 2 2 3 5 4 5 6 3 7 8 9 10 3 1 4 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 25 32 33 34 35 36 37 38 39 3 40 41 42 43 44 45 46 47 48 6 49 50 51 52 53 54 55 56 57 58 26 59 60 61 62 63 64 65 66 67 68 69 69 17 70 71 72 73 74 75 76 77 78 79 80 81 54 82 83 84 85 86 87 88 89 ...
output:
181 182 181 182 182 183 183 183 182 183 183 182 181 184 183 183 182 181 181 183 182 183 181 183 182 182 182 183 183 183 180 182 183 183 182 181 181 181 183 183 182 182 180 182 181 183 182 182 183 183 183 181 180 181 181 182 183
result:
ok 57 numbers
Test #13:
score: 0
Accepted
time: 99ms
memory: 42904kb
input:
100 10000 1 2 2 2 3 5 3 4 5 6 7 8 9 10 11 12 13 14 15 9 8 16 17 18 19 20 2 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 11 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 3 49 19 21 13 61 62 63 64 65 66 67 68 69 20 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8...
output:
136 138 138 136 135 137 136 136 137 138 137 137 138 138 138 137 137 137 138 137 137 136 138 136 138 138 138 137 137 138 137 136 136 137 137 137 137 138 137 136 137 138 136 136 138 138 136 137 137 138 136 137 137 138 137 138 137 138 136 135 138 137 136 137 134 137 137 136 137 137 135 136 138 138 136 ...
result:
ok 100 numbers
Test #14:
score: 0
Accepted
time: 81ms
memory: 40856kb
input:
1000 1000 1 1 2 3 5 4 5 5 9 6 7 8 9 10 11 12 13 17 9 14 15 16 17 18 1 19 20 21 22 23 24 25 3 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 30 43 44 45 46 47 48 49 50 51 8 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 70 71 50 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 9...
output:
43 42 42 42 41 41 42 41 42 42 41 42 42 42 42 41 42 41 42 42 42 41 42 41 42 42 42 40 43 40 42 42 40 42 42 42 41 41 42 41 41 41 42 42 42 41 42 41 42 42 42 42 42 42 41 42 43 41 40 41 42 42 42 43 42 40 41 42 42 41 41 41 42 42 43 41 41 41 42 40 42 42 42 42 41 42 42 42 42 43 41 41 42 41 41 41 42 42 42 42 ...
result:
ok 1000 numbers
Test #15:
score: 0
Accepted
time: 71ms
memory: 42748kb
input:
10000 100 1 1 3 2 2 3 4 5 7 6 7 8 9 10 11 12 13 14 4 2 10 15 16 17 18 19 5 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 23 46 47 48 49 50 51 52 53 54 16 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 13 37 49 76 77 78 79 80 81 82 83 84 85 86 100 1 2 2...
output:
12 12 13 12 12 12 12 11 12 12 12 12 13 13 12 12 12 11 13 13 12 12 13 12 12 12 12 13 13 13 12 12 12 13 11 13 13 12 12 12 13 12 12 12 12 12 12 12 12 11 12 13 11 13 12 12 12 12 12 12 12 13 12 12 12 11 12 12 13 13 12 13 12 13 12 11 12 11 11 12 13 12 13 12 12 13 12 12 12 12 12 12 12 12 12 12 12 11 12 13 ...
result:
ok 10000 numbers
Test #16:
score: 0
Accepted
time: 63ms
memory: 40692kb
input:
100000 10 1 2 1 2 3 4 5 6 7 10 1 1 1 2 3 6 4 5 6 10 1 1 3 2 3 1 4 5 6 10 1 2 1 2 3 4 5 6 7 10 1 2 3 1 2 3 4 5 6 10 1 2 1 2 3 4 5 6 7 10 1 1 2 4 3 4 5 6 7 10 1 1 1 2 3 4 5 6 7 10 1 2 2 4 3 3 4 5 6 10 1 2 1 2 3 4 5 6 7 10 1 1 3 2 3 6 4 5 6 10 1 2 2 4 3 2 4 5 6 10 1 1 1 2 3 5 4 5 6 10 1 2 2 4 3 4 5 6 7...
output:
3 4 4 3 3 3 3 3 3 3 4 3 4 3 4 4 3 3 3 3 3 4 4 4 4 3 3 3 3 3 4 4 4 4 3 3 3 3 3 4 3 4 4 3 3 4 3 3 4 3 4 3 3 3 3 3 4 3 3 3 3 4 3 3 3 3 3 4 3 3 4 3 4 4 3 3 4 3 3 4 3 3 3 4 4 3 3 3 3 3 4 3 4 4 3 3 3 3 4 3 4 3 3 4 3 3 4 3 4 4 3 3 4 4 4 3 3 3 3 3 4 3 3 3 4 3 4 3 3 3 3 4 3 4 3 4 3 4 3 4 3 3 3 4 4 3 4 4 3 3 ...
result:
ok 100000 numbers