黑白翻转:求将树变为美丽树的最少操作次数
类型:程序题

题面描述

小杨有一棵包含n个节点的树,树上的每个节点要么是白色,要么是黑色。小杨认为一棵树是美丽树当且仅当删除所有白色节点之后,剩余节点仍然组成一棵树。 小杨每次操作可以选择一个白色节点将它的颜色变为黑色,他想知道最少要执行多少次操作可以使得这棵树变成美丽树。

输入格式

  1. 第一行包含一个正整数n,代表树的节点数。
  2. 第二行包含n个非负整数$a_1,a_2,\dots,a_n$,其中$a_i=0$表示节点i为白色,$a_i=1$表示节点i为黑色。
  3. 接下来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$。

代码编辑器
测试用例输入
{{resultStatus.text}}