QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#323026#6317. XOR Tree Pathliuzhenhao09#AC ✓25ms17924kbC++20983b2024-02-08 09:58:462024-02-08 09:58:47

Judging History

你现在查看的是最新测评结果

  • [2024-02-08 09:58:47]
  • 评测
  • 测评结果:AC
  • 用时:25ms
  • 内存:17924kb
  • [2024-02-08 09:58:46]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int INF = 1e16 + 7;
struct edge{
	int to,nxt;
}e[200010];
int n,nE = 0;
int hd[100010];
int a[100010],f[100010][2];
void add(int u,int v){
	e[++nE] = (edge){v,hd[u]};
	hd[u] = nE;
}
void dfs(int u,int fa){
	int g[2];
	g[0] = 0,g[1] = -INF;
	bool fl = 0;
	for(int i = hd[u]; i; i = e[i].nxt){
		int v = e[i].to;
		if(v == fa) continue;
		dfs(v,u);
		fl = 1;
		int g0 = g[0],g1 = g[1];
		g[0] = max(g0 + f[v][0],g1 + f[v][1]),g[1] = max(g0 + f[v][1],g1 + f[v][0]);
	}
	if(a[u]) f[u][0] = g[0] + 1,f[u][1] = g[1];
	else f[u][0] = g[0],f[u][1] = g[1] + 1;
	if(!fl){
		if(a[u]) f[u][0] = 1,f[u][1] = 0;
		else f[u][0] = 0,f[u][1] = 1;
	}
}
signed main(){
	scanf("%lld",&n);
	for(int i = 1; i <= n; i++) scanf("%lld",&a[i]);
	for(int i = 1,u,v; i < n; i++){
		scanf("%lld %lld",&u,&v);
		add(u,v),add(v,u);
	}
	dfs(1,0);
	printf("%lld\n",max(f[1][0],f[1][1]));
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3948kb

input:

5
1 0 0 1 0
1 2
1 3
3 4
3 5

output:

5

result:

ok 1 number(s): "5"

Test #2:

score: 0
Accepted
time: 1ms
memory: 3788kb

input:

6
1 1 0 0 1 0
3 1
2 5
1 2
4 1
2 6

output:

5

result:

ok 1 number(s): "5"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3788kb

input:

9
1 0 1 0 1 0 1 0 1
2 9
1 2
6 9
3 8
4 5
5 9
2 8
7 8

output:

6

result:

ok 1 number(s): "6"

Test #4:

score: 0
Accepted
time: 18ms
memory: 8396kb

input:

73537
0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 ...

output:

56486

result:

ok 1 number(s): "56486"

Test #5:

score: 0
Accepted
time: 0ms
memory: 4036kb

input:

4440
1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0...

output:

3419

result:

ok 1 number(s): "3419"

Test #6:

score: 0
Accepted
time: 13ms
memory: 7320kb

input:

55025
1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 ...

output:

42221

result:

ok 1 number(s): "42221"

Test #7:

score: 0
Accepted
time: 10ms
memory: 7608kb

input:

59260
1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 ...

output:

45452

result:

ok 1 number(s): "45452"

Test #8:

score: 0
Accepted
time: 11ms
memory: 6880kb

input:

48580
1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 ...

output:

37287

result:

ok 1 number(s): "37287"

Test #9:

score: 0
Accepted
time: 25ms
memory: 10084kb

input:

100000
1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1...

output:

76831

result:

ok 1 number(s): "76831"

Test #10:

score: 0
Accepted
time: 18ms
memory: 10232kb

input:

100000
1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0...

output:

76692

result:

ok 1 number(s): "76692"

Test #11:

score: 0
Accepted
time: 25ms
memory: 10144kb

input:

100000
0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0...

output:

76715

result:

ok 1 number(s): "76715"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

2
1 0
1 2

output:

1

result:

ok 1 number(s): "1"

Test #13:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

2
0 0
1 2

output:

2

result:

ok 1 number(s): "2"

Test #14:

score: 0
Accepted
time: 0ms
memory: 3788kb

input:

3
0 0 0
1 2
1 3

output:

2

result:

ok 1 number(s): "2"

Test #15:

score: 0
Accepted
time: 4ms
memory: 8128kb

input:

30258
1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 ...

output:

15162

result:

ok 1 number(s): "15162"

Test #16:

score: 0
Accepted
time: 16ms
memory: 12732kb

input:

63626
1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 ...

output:

31871

result:

ok 1 number(s): "31871"

Test #17:

score: 0
Accepted
time: 25ms
memory: 17924kb

input:

100000
0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1...

output:

50029

result:

ok 1 number(s): "50029"

Test #18:

score: 0
Accepted
time: 1ms
memory: 3908kb

input:

702
1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 ...

output:

532

result:

ok 1 number(s): "532"

Test #19:

score: 0
Accepted
time: 1ms
memory: 3912kb

input:

555
1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 ...

output:

424

result:

ok 1 number(s): "424"

Test #20:

score: 0
Accepted
time: 0ms
memory: 3856kb

input:

81
0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1
1 31
11 53
51 76
10 17
12 68
10 43
36 56
79 81
55 56
68 81
27 50
18 64
29 36
8 59
4 52
6 7
4 54
5 16
49 56
38 41
24 33
25 52
32 71
14 5...

output:

57

result:

ok 1 number(s): "57"

Test #21:

score: 0
Accepted
time: 1ms
memory: 3920kb

input:

654
0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 ...

output:

503

result:

ok 1 number(s): "503"

Test #22:

score: 0
Accepted
time: 1ms
memory: 3796kb

input:

721
1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 ...

output:

557

result:

ok 1 number(s): "557"

Test #23:

score: 0
Accepted
time: 6ms
memory: 5688kb

input:

30258
1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 ...

output:

30258

result:

ok 1 number(s): "30258"

Test #24:

score: 0
Accepted
time: 8ms
memory: 6464kb

input:

43363
0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 ...

output:

43363

result:

ok 1 number(s): "43363"

Test #25:

score: 0
Accepted
time: 13ms
memory: 9992kb

input:

100000
0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0...

output:

100000

result:

ok 1 number(s): "100000"

Test #26:

score: 0
Accepted
time: 1ms
memory: 3888kb

input:

20
0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0
1 20
17 18
10 11
5 19
5 12
6 18
2 13
8 18
8 13
13 15
1 3
5 11
14 15
3 16
9 17
7 19
4 12
4 16
7 15

output:

13

result:

ok 1 number(s): "13"

Test #27:

score: 0
Accepted
time: 1ms
memory: 3760kb

input:

8
1 0 0 1 0 1 0 0
3 5
3 8
1 2
6 8
3 4
1 6
7 8

output:

6

result:

ok 1 number(s): "6"