#P8916. [DMOI-R2] 暗号

[DMOI-R2] 暗号

题目背景

有太多人太多事 夹在我们之间咆哮
杂讯太多讯号弱 就连风吹都要干扰
可是你不想 一直走在黑暗地下道
想吹风想自由 想要一起手牵手 去看海绕世界流浪
——《暗号

书接上回,每个军队都拿到了补给。但是要上战场,准备还不是很充分。JF 只有军队组成了一个集团军。才有可能形成一股强大的战斗力,才可以在军阀混战中取得胜利。

题目描述

已知 JF 有 nn 支军队,他们分别由 n1n-1 条边连接。11 号军队为根。每支军队有自己的或黑或白的 “暗号”,方便相互联系,以及他的战力值和士气值。初始的时候,军队的士气值等于战力值。我们从深度最深的军队开始改变士气值,对于当前的军队 uu 来说,在与他直接相连的军队且深度比 uu 深的军队中,如果有军队 vv 和他的暗号相同,uu 就可以联系上 vv,然后 uu 的士气值 就必须全部加上 vv 的子树内和 vv 颜色相同的点的战力值。(可以理解为,在 uu 的士气更新完毕时,uu 的子树的士气也更新完毕了。)

现在,你可以任意修改这些军队的暗号。要你求出所有军队士气值的和的最大值是多少。

输入格式

第一行一个整数 nn,如题所示。

第二行至第 nn 行每行有两个数,表示 uuvv 之间有连边。

n+1n+1 行有 nn 个数,第 ii 个数表示第 ii 支军队一开始的战力值 wiw_i

输出格式

一行一个整数,表示士气值之和的最大值。

4
1 2 
1 3 
2 4 
6 -2 4 -7 
5
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
42
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
266
6
1 2
1 3
1 4
2 5
2 6
-1 5 -3 -4 -5 -7
-10

提示

【样例解释 #1】

我们将军队 1,3,41,3,4 的暗号改为黑色,军队 22 的暗号改成白色。这样,军队 1,2,3,41,2,3,4 的最终士气值变为 10,2,4,710,-2,4,-7,总和为 55。可以证明不存在使得最终士气值和更大的方案。

【样例解释 #2】

我们用 11 表示黑色暗号,用 22 表示白色暗号,那么 nn 支军队的暗号颜色分别如下:1 1 1 1 2 1 2 2 2 1。这样整支军队的士气值和为 4242,可以证明不存在士气值和更大的方案。

【数据范围与约定】

测试点编号 nn \le 特殊条件
121\sim2 2020
363 \sim 6 5050
7107 \sim 10 300300 v=u+1v=u+1
111211\sim12 1wi10001 \le w_i \le 1000
131413\sim14 u=1u=1
152015 \sim 20

对于 100%100\% 的数据,1n3001 \le n \le 3001000wi1000-1000 \le w_i \le 1000