#P15425. [ICPC 2026 APC] Christmas Tree Un-decoration
[ICPC 2026 APC] Christmas Tree Un-decoration
题目描述
去年圣诞节,你有一棵漂亮的圣诞树,这棵树有 个结点,编号为 到 ,以结点 作为根。对于每个 (),结点 是结点 的父亲。树上的每个结点 上装饰有 个装饰品()。
然而圣诞节已过了几个月,是时候摘下所有的装饰品,把树收起来等到明年再用了。由于这个过程很单调,你决定通过只使用如下操作让它变得有趣些——你可以进行零次甚至多次如下操作:
选择一个结点 ,对于从结点 到结点 的唯一简单路径上的每个结点 (包括 ),如果 上还有装饰品,就从 上移除一个装饰品。
当你即将决定最少需要多少次操作时,你的小孩却改变了树上某些节点的装饰品数量。更具体地说,你的小孩会进行 次更改。在第 次更改中,结点 上的装饰品数量被修改为 ()。请注意这些更改具有持久性:每次更改的效果会持续到之后。
注意:你实际上并不会真的对树执行操作。
对于初始配置以及每次更改后的配置,你需要分别计算出当下移除所有装饰品所需的最少操作次数。
输入格式
第一行为一个整数 (),表示测试用例数量。接下来是 组测试用例。每组数据格式如下:
每个测试用例的第一行包含两个整数 和 (;)。第二行为 个整数 (对所有 ,有 )。第三行为 个整数 (对所有 ,)。
接下来的 行,每一行包含两个整数 和 (;),表示第 次修改的信息。
所有测试用例中 的总和不超过 。
所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出 行。第一行输出初始树所需的最小操作次数。接下来的第 行输出第 次修改后最少需要的操作次数。
输入输出样例 #1
输入 #1
2
6 3
1 1 2 3 3
5 3 2 5 2 4
4 1
3 10
1 6
8 6
1 2 3 4 5 5 3
1 1 1 1 1 1 1 1
6 3
8 3
5 5
6 1
3 7
5 1
输出 #1
11
9
13
13
3
5
7
8
8
8
7
说明/提示
样例输入输出 #1 说明:
对于第一个测试用例,其初始树如图 D.1 所示。注意,图中的星星(结点 )也是一个装饰品。
- 对于初始树,你可以通过选择结点 5 次、结点 2 次、结点 4 次,总共 次操作移除所有装饰品。
- 第一次修改后,结点 上只有一个装饰品。你需要 次操作,依次选择结点 1 次、结点 2 次、结点 2 次、结点 4 次。
- 第二次修改后,结点 上有 个装饰品。你需要 次操作。
- 第三次修改后,结点 上有 个装饰品,但所需操作次数并未改变。
由 ChatGPT 5 翻译