编程题
### 问题描述 在蓝桥小学的课堂上,小蓝老师把糖果摆成了一颗树的形状,老师让同学们来选糖果,选中的糖果就可以直接拿走,但是有如下规则: 1. $1$ 号节点是**根节点**,可以被无条件选中。 2. 如果要选中节点 $v$,那么他的父节点必须已经被选中。 3. 当父节点 $u$ 被选中后,他的**直接儿子节点**最多只能选 $k_u$ 个。 直接儿子节点:与父亲节点距离为 $1$ 的子节点。 小桥很贪吃,他想知道他最多可以选中多少个糖果。 ### 输入格式 第一行输入一个整数 $N$ ,代表糖果总个数。 接下来 $N-1$ 行,每行两个整数 $u_i,v_i$ ,代表 $u_i,v_i$ 之间有一条边。 最后输入 $N$ 个整数,$k_1,k_2......k_n$,代表选中编号为 $i$ 的树可选儿子数的限制。 ### 输出格式 输出一个整数,最大可以选中的糖果数量。 ### 样例输入 ``` 5 1 2 1 3 2 4 3 5 1 0 1 0 2 ``` ### 样例输出 ``` 3 ``` ### 说明 $ 3\le N \le 10^5$, $0 \le k_i\le 10^5,1 \le u_i,v_i \le N $ 。 每个节点的儿子数并不一定相同。
查看答案
赣ICP备20007335号-2