{"problem":{"name":"[DMOI-R2] 暗号","description":{"content":"已知 JF 有 $n$ 支军队，他们分别由 $n-1$ 条边连接。$1$ 号军队为根。每支军队有自己的或黑或白的 **“暗号”**，方便相互联系，以及他的战力值和士气值。**初始的时候，军队的士气值等于战力值**。我们从深度最深的军队开始改变士气值，对于当前的军队 $u$ 来说，在与他直接相连的军队且深度比 $u$ 深的军队中，如果有军队 $v$ 和他的暗号相同，$u$ 就可以联系上 $v$，然后","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P4"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP8916"},"statements":[{"statement_type":"Markdown","content":"已知 JF 有 $n$ 支军队，他们分别由 $n-1$ 条边连接。$1$ 号军队为根。每支军队有自己的或黑或白的 **“暗号”**，方便相互联系，以及他的战力值和士气值。**初始的时候，军队的士气值等于战力值**。我们从深度最深的军队开始改变士气值，对于当前的军队 $u$ 来说，在与他直接相连的军队且深度比 $u$ 深的军队中，如果有军队 $v$ 和他的暗号相同，$u$ 就可以联系上 $v$，然后 $u$ 的士气值 **就必须全部加上**  $v$ 的子树内和 $v$ 颜色相同的点的战力值。（可以理解为，在 $u$ 的士气更新完毕时，$u$ 的子树的士气也更新完毕了。）  \n\n现在，你可以任意修改这些军队的暗号。要你求出所有**军队士气值的和的最大值**是多少。\n\n## Input\n\n第一行一个整数 $n$，如题所示。\n\n第二行至第 $n$ 行每行有两个数，表示 $u$ 和 $v$ 之间有连边。\n\n第 $n+1$ 行有 $n$ 个数，第 $i$ 个数表示第 $i$ 支军队一开始的战力值 $w_i$。\n\n## Output\n\n一行一个整数，表示士气值之和的最大值。\n\n[samples]\n\n## Background\n\n> 有太多人太多事 夹在我们之间咆哮  \n> 杂讯太多讯号弱 就连风吹都要干扰  \n> 可是你不想 一直走在黑暗地下道  \n> 想吹风想自由 想要一起手牵手 去看海绕世界流浪  \n> ——《[暗号](https://www.bilibili.com/video/BV1p24y1f7zM)》\n\n书接上回，每个军队都拿到了补给。但是要上战场，准备还不是很充分。JF 只有军队组成了一个集团军。才有可能形成一股强大的战斗力，才可以在军阀混战中取得胜利。\n\n## Note\n\n#### 【样例解释 #1】\n\n我们将军队 $1,3,4$ 的暗号改为黑色，军队 $2$ 的暗号改成白色。这样，军队 $1,2,3,4$ 的最终士气值变为 $10,-2,4,-7$，总和为 $5$。可以证明不存在使得最终士气值和更大的方案。\n\n#### 【样例解释 #2】\n\n我们用 $1$ 表示黑色暗号，用 $2$ 表示白色暗号，那么 $n$ 支军队的暗号颜色分别如下：`1 1 1 1 2 1 2 2 2 1`。这样整支军队的士气值和为 $42$，可以证明不存在士气值和更大的方案。\n\n#### 【数据范围与约定】\n\n| 测试点编号 | $n \\le$ | 特殊条件 |\n| :----------: | :----------: | :----------: |\n| $1\\sim2$ | $20$ | 无 |\n| $3 \\sim 6$ | $50$ | 无 |\n| $7 \\sim 10$ | $300$ | $v=u+1$ |\n| $11\\sim12$ | $300$ | $1 \\le w_i \\le 1000$ |\n| $13\\sim14$ | $300$ | $u=1$ |\n| $15 \\sim 20$ | $300$ | 无 |\n\n对于 $100\\%$ 的数据，$1 \\le n \\le 300$，$-1000 \\le w_i \\le 1000$。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP8916","tags":["动态规划 DP","2022","洛谷原创","树形 DP"],"sample_group":[["4\n1 2 \n1 3 \n2 4 \n6 -2 4 -7 ","5"],["10\n1 2\n1 3\n2 4\n2 5\n3 6\n3 7\n4 8\n4 9\n4 10\n-3 9 4 -3 -2 5 -1 -3 -9 7","42"],["20\n1 2\n1 3\n2 4\n2 5\n3 6\n3 7\n4 8\n4 9\n4 10\n6 11\n6 12\n7 13\n7 14\n7 15\n7 16\n8 17\n9 18\n11 19\n15 20\n1 2 -1 -4 9 -3 -5 8 9 -10 -13 15 11 -6 17 -1 -19 20 -5 -9","266"],["6\n1 2\n1 3\n1 4\n2 5\n2 6\n-1 5 -3 -4 -5 -7","-10"]],"created_at":"2026-03-03 11:09:25"}}