[DMOI-R2] 暗号
题目背景
> 有太多人太多事 夹在我们之间咆哮
> 杂讯太多讯号弱 就连风吹都要干扰
> 可是你不想 一直走在黑暗地下道
> 想吹风想自由 想要一起手牵手 去看海绕世界流浪
> ——《[暗号](https://www.bilibili.com/video/BV1p24y1f7zM)》
书接上回,每个军队都拿到了补给。但是要上战场,准备还不是很充分。JF 只有军队组成了一个集团军。才有可能形成一股强大的战斗力,才可以在军阀混战中取得胜利。
题目描述
已知 JF 有 $n$ 支军队,他们分别由 $n-1$ 条边连接。$1$ 号军队为根。每支军队有自己的或黑或白的 **“暗号”**,方便相互联系,以及他的战力值和士气值。**初始的时候,军队的士气值等于战力值**。我们从深度最深的军队开始改变士气值,对于当前的军队 $u$ 来说,在与他直接相连的军队且深度比 $u$ 深的军队中,如果有军队 $v$ 和他的暗号相同,$u$ 就可以联系上 $v$,然后 $u$ 的士气值 **就必须全部加上** $v$ 的子树内和 $v$ 颜色相同的点的战力值。(可以理解为,在 $u$ 的士气更新完毕时,$u$ 的子树的士气也更新完毕了。)
现在,你可以任意修改这些军队的暗号。要你求出所有**军队士气值的和的最大值**是多少。
输入输出格式
输入格式
第一行一个整数 $n$,如题所示。
第二行至第 $n$ 行每行有两个数,表示 $u$ 和 $v$ 之间有连边。
第 $n+1$ 行有 $n$ 个数,第 $i$ 个数表示第 $i$ 支军队一开始的战力值 $w_i$。
输出格式
一行一个整数,表示士气值之和的最大值。
输入输出样例
输入样例 #1
4
1 2
1 3
2 4
6 -2 4 -7
输出样例 #1
5
输入样例 #2
10
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
4 10
-3 9 4 -3 -2 5 -1 -3 -9 7
输出样例 #2
42
输入样例 #3
20
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
4 10
6 11
6 12
7 13
7 14
7 15
7 16
8 17
9 18
11 19
15 20
1 2 -1 -4 9 -3 -5 8 9 -10 -13 15 11 -6 17 -1 -19 20 -5 -9
输出样例 #3
266
输入样例 #4
6
1 2
1 3
1 4
2 5
2 6
-1 5 -3 -4 -5 -7
输出样例 #4
-10
说明
#### 【样例解释 #1】
我们将军队 $1,3,4$ 的暗号改为黑色,军队 $2$ 的暗号改成白色。这样,军队 $1,2,3,4$ 的最终士气值变为 $10,-2,4,-7$,总和为 $5$。可以证明不存在使得最终士气值和更大的方案。
#### 【样例解释 #2】
我们用 $1$ 表示黑色暗号,用 $2$ 表示白色暗号,那么 $n$ 支军队的暗号颜色分别如下:`1 1 1 1 2 1 2 2 2 1`。这样整支军队的士气值和为 $42$,可以证明不存在士气值和更大的方案。
#### 【数据范围与约定】
| 测试点编号 | $n \le$ | 特殊条件 |
| :----------: | :----------: | :----------: |
| $1\sim2$ | $20$ | 无 |
| $3 \sim 6$ | $50$ | 无 |
| $7 \sim 10$ | $300$ | $v=u+1$ |
| $11\sim12$ | $300$ | $1 \le w_i \le 1000$ |
| $13\sim14$ | $300$ | $u=1$ |
| $15 \sim 20$ | $300$ | 无 |
对于 $100\%$ 的数据,$1 \le n \le 300$,$-1000 \le w_i \le 1000$。