黑白翻转:求将树变为美丽树的最少操作次数
题面描述
小杨有一棵包含n个节点的树,树上的每个节点要么是白色,要么是黑色。小杨认为一棵树是美丽树当且仅当删除所有白色节点之后,剩余节点仍然组成一棵树。 小杨每次操作可以选择一个白色节点将它的颜色变为黑色,他想知道最少要执行多少次操作可以使得这棵树变成美丽树。
输入格式
- 第一行包含一个正整数n,代表树的节点数。
- 第二行包含n个非负整数$a_1,a_2,\dots,a_n$,其中$a_i=0$表示节点i为白色,$a_i=1$表示节点i为黑色。
- 接下来n-1行,每行包含两个正整数$x_i,y_i$,代表树中存在一条连接节点$x_i$和$y_i$的边。
输出格式
输出一个整数,代表最少执行的操作次数。
样例1
样例输入
5
0 1 0 1 0
1 2
1 3
3 4
3 5
样例输出
2
样例解释
将节点1和3变为黑色即可使这棵树变为美丽树,此时删除白色节点5,剩余黑色节点仍然组成一棵树。
数据范围
| 子任务编号 | 数据点占比 | n | $a_i$ | 特殊条件 |
|---|---|---|---|---|
| 1 | 30% | $\leq 10^5$ | $0\leq a_i\leq 1$ | 树的形态为一条链 |
| 2 | 30% | $\leq 10^5$ | $0\leq a_i\leq 1$ | 只有两个节点颜色为黑色 |
| 3 | 40% | $\leq 10^5$ | $0\leq a_i\leq 1$ | 无 |
对于全部数据,保证有 $1 \leq n \leq 10^5$,$0 \leq a_i \leq 1$。
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析