[DMOI-R2] 暗号

Luogu
IDLGP8916
Time1000ms
Memory512MB
DifficultyP4
动态规划 DP2022洛谷原创树形 DP
已知 JF 有 $n$ 支军队,他们分别由 $n-1$ 条边连接。$1$ 号军队为根。每支军队有自己的或黑或白的 **“暗号”**,方便相互联系,以及他的战力值和士气值。**初始的时候,军队的士气值等于战力值**。我们从深度最深的军队开始改变士气值,对于当前的军队 $u$ 来说,在与他直接相连的军队且深度比 $u$ 深的军队中,如果有军队 $v$ 和他的暗号相同,$u$ 就可以联系上 $v$,然后 $u$ 的士气值 **就必须全部加上** $v$ 的子树内和 $v$ 颜色相同的点的战力值。(可以理解为,在 $u$ 的士气更新完毕时,$u$ 的子树的士气也更新完毕了。) 现在,你可以任意修改这些军队的暗号。要你求出所有**军队士气值的和的最大值**是多少。 ## Input 第一行一个整数 $n$,如题所示。 第二行至第 $n$ 行每行有两个数,表示 $u$ 和 $v$ 之间有连边。 第 $n+1$ 行有 $n$ 个数,第 $i$ 个数表示第 $i$ 支军队一开始的战力值 $w_i$。 ## Output 一行一个整数,表示士气值之和的最大值。 [samples] ## Background > 有太多人太多事 夹在我们之间咆哮 > 杂讯太多讯号弱 就连风吹都要干扰 > 可是你不想 一直走在黑暗地下道 > 想吹风想自由 想要一起手牵手 去看海绕世界流浪 > ——《[暗号](https://www.bilibili.com/video/BV1p24y1f7zM)》 书接上回,每个军队都拿到了补给。但是要上战场,准备还不是很充分。JF 只有军队组成了一个集团军。才有可能形成一股强大的战斗力,才可以在军阀混战中取得胜利。 ## Note #### 【样例解释 #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$。
Samples
Input #1
4
1 2 
1 3 
2 4 
6 -2 4 -7 
Output #1
5
Input #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
Output #2
42
Input #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
Output #3
266
Input #4
6
1 2
1 3
1 4
2 5
2 6
-1 5 -3 -4 -5 -7
Output #4
-10
API Response (JSON)
{
  "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$,然后...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments