CF2006B Iris and the Tree

题目描述

给定一棵以 $1$ 号结点为根的有根树。对于树中任意结点 $i$($1 < i \leq n$),存在一条连接结点 $i$ 和 $p_i$($1 \leq p_i < i$)的边,边权为 $t_i$。 Iris 并不知道所有 $t_i$ 的具体值,但她知道 $\displaystyle\sum_{i=2}^n t_i = w$,且每个 $t_i$ 都是非负整数。 树的结点编号有特殊要求:每个子树中的结点编号是连续的整数。换句话说,树的结点编号是按照深度优先遍历的顺序排列的。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2006B/ed42d3ad002b849b19e2cab01dc8c80b05d343e1.png) 上图中的树满足条件。例如,结点 $2$ 的子树中,结点编号为 $2, 3, 4, 5$,是连续的整数。![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2006B/fbbdad2f1a4867f5d12408bb700e0a02f6731145.png) 下图中的树不满足条件,因为结点 $2$ 的子树中,结点编号 $2$ 和 $4$ 不是连续的整数。 我们定义 $\operatorname{dist}(u, v)$ 为树中结点 $u$ 和 $v$ 之间的简单路径长度。 接下来有 $n-1$ 个事件: - Iris 得到两个整数 $x$ 和 $y$,表示 $t_x = y$。 每次事件后,Iris 想要分别独立地计算每个 $i$($1 \leq i \leq n$)时 $\operatorname{dist}(i, i \bmod n + 1)$ 的最大可能值。她只需要知道这 $n$ 个值的和。请你帮助 Iris 快速得到答案。 注意,在分别计算 $\operatorname{dist}(i, i \bmod n + 1)$ 和 $\operatorname{dist}(j, j \bmod n + 1)$($i \ne j$)的最大可能值时,未知的边权可以不同。 #

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试数据组数。每组测试数据描述如下: 每组测试数据的第一行包含两个整数 $n$ 和 $w$($2 \leq n \leq 2 \cdot 10^5$,$0 \leq w \leq 10^{12}$),表示树的结点数和边权和。 第二行包含 $n-1$ 个整数 $p_2, p_3, \ldots, p_n$($1 \leq p_i < i$),表示树的边的描述。 接下来有 $n-1$ 行,每行两个整数 $x$ 和 $y$($2 \leq x \leq n$,$0 \leq y \leq w$),表示 $t_x = y$。 保证所有事件中的 $x$ 互不相同,且所有 $y$ 的和等于 $w$。 保证所有测试数据中 $n$ 的总和不超过 $2 \cdot 10^5$。 #

输出格式

对于每组测试数据,输出一行包含 $n-1$ 个整数,分别表示每次事件后的答案。 #

说明/提示

在第一个测试点中,$\operatorname{dist}(1, 2) = \operatorname{dist}(2, 1) = t_2 = w = 10^{12}$,所以 $\operatorname{dist}(1, 2) + \operatorname{dist}(2, 1) = 2 \cdot 10^{12}$。 在第二个测试点中,Iris 得知所有 $t_x$ 后的树如下图: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2006B/cb4bc8b1d32fd5015d0673154cd358fe4ee772d9.png) $\operatorname{dist}(1, 2) = t_2$,$\operatorname{dist}(2, 3) = t_2 + t_3$,$\operatorname{dist}(3, 4) = t_3 + t_4$,$\operatorname{dist}(4, 1) = t_4$。第一次事件后,$t_2 = 2$,所以 $\operatorname{dist}(1, 2) = 2$。同时: - 若 $t_3 = 7$,$t_4 = 0$,则 $\operatorname{dist}(2, 3)$ 最大为 $9$。 - 若 $t_3 = 0$,$t_4 = 7$,则 $\operatorname{dist}(3, 4)$ 和 $\operatorname{dist}(4, 1)$ 最大为 $7$。 因此,答案为 $2 + 9 + 7 + 7 = 25$。 第二次事件后,$t_4 = 4$,则 $t_3 = w - t_2 - t_4 = 4$。$\operatorname{dist}(1, 2) = 2$,$\operatorname{dist}(2, 3) = 2 + 3 = 5$,$\operatorname{dist}(3, 4) = 3 + 4 = 7$,$\operatorname{dist}(4, 1) = 4$。因此,答案为 $2 + 5 + 7 + 4 = 18$。 由 ChatGPT 4.1 翻译