#P4719. 动态 DP
动态 DP
动态 DP
题目描述
给定一棵有 个节点的树,每个节点 有一个整数权值 。
你需要依次执行 次修改。每次修改给定两个整数 ,把节点 的权值改为 。在每次修改之后,求当前树的最大权独立集权值。
树的一个独立集是一个节点集合,其中任意两个节点之间都没有边直接相连。独立集的权值等于其中所有节点权值之和。允许选择空集,因此答案不会小于 。
输入格式
第一行包含两个整数 ,分别表示节点数和修改次数。
第二行包含 个整数,第 个整数表示节点 的初始权值 。
接下来 行,每行包含两个整数 ,表示树中有一条连接节点 的边。
接下来 行,每行包含两个整数 ,表示把节点 的权值修改为 。
输出格式
对于每次修改,输出一行一个整数,表示修改后整棵树的最大权独立集权值。
样例输入 1
10 10
-11 80 -99 -76 56 38 92 -51 -34 47
2 1
3 1
4 3
5 2
6 2
7 1
8 2
9 4
10 7
9 -44
2 -17
2 98
7 -58
8 48
3 99
8 -61
9 76
9 14
10 93
样例输出 1
186
186
190
145
189
288
244
320
258
304
数据范围
对于全部数据,,,。输入的 条边构成一棵树。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | |
| 2 | ||
| 3 | 40 | 无特殊限制 |