#L4043. 「SNOI2024」字符树

「SNOI2024」字符树

题目描述

给你一棵 nn 个点的有根树,根为 11。每条边上有一个字符 c{0,1}c \in \{0, 1\}SuS_u 表示从根到 uu 的路径上每条边的字符依次写下来组成的字符串。保证每个节点向儿子的边上的字符互不相同。

对每个点 uu,有一个价值 valuval_u 和一个限制 aua_u
对每个点 uu,如果点 vv 满足 SuS_uSvS_v 的后缀,那么我们认为 vvuu扩展点

Alice 手里有一个字符串 S=SuS = S_u,现在她可以删掉若干末尾的字符,使得 SS 变成 SS',并将 SS' 告诉 Bob。

Bob 获得了一个字符串 SS',他需要在 SS' 之后加入若干字符,得到 SS''。如果存在 uu 的某个扩展点 vv,满足 S=SvS'' = S_v,并且 Sav|S'| \ge a_v,那么 Bob 就获得了 valvval_v 的收益。Bob 只能进行一次这样的操作,所以他会选择符合条件的 vvvalvval_v 最大的那个。如果没有符合条件的 vv,Bob 只能获得 00 收益。

现在 Alice 想知道,对于删除 0Su0 \sim |S_u| 个字符,总计 Su+1|S_u| + 1 种删除方式里 Bob 能获得权值之和是多少?

对于每个 uu,你都需要回答 Alice 的询问。

形式化地说:
我们需要对每个点 uu 求出
$ ans_u = \sum_{i=0}^{|S_u|} \max_{\substack{i \ge a_v \\ S_u = S_v[|S_v|-|S_u|+1, |S_v|] \\ S_u[1, i] = S_v[1, i]}} val_v $

其中 S[l,r]S[l, r] 表示字符串 SS 的第 ll 到第 rr 个字符组成的字符串。特殊的,S[x+1,x]S[x+1, x] 表示空串。S|S| 表示字符串 SS 的长度,\land 表示且。


输入格式

多组测试数据,第一行一个整数 TT 表示数据组数。

对于每组测试数据:

  • 第一行一个正整数 nn,表示节点个数。
  • 接下来 n1n - 1 行,每行两个整数 fai,cifa_i, c_i 表示第 ii 个点的父亲编号,以及边上的字符。
  • 接下来一行 nn 个正整数 val1,val2,,valnval_1, val_2, \dots, val_n
  • 接下来一行 nn 个非负整数 a1,a2,,ana_1, a_2, \dots, a_n

输出格式

输出一行 nn 个整数 ans1,ans2,,ansnans_1, ans_2, \dots, ans_n


样例

输入

1
5
1 0
1 1
2 0
2 1
1 2 3 4 5
0 1 0 1 2

输出

3 4 6 8 5

以下表格表示当 u,iu, i 固定时,式子中 valvval_v 的最大值:

uu \ ii 0 1 2
1 3
2 0 4
3
4 0 4
5 0 5

数据规模与约定

对于所有数据保证:

  • 1T51 \le T \le 5
  • 1n5×1051 \le n \le 5 \times 10^5
  • 1vali1091 \le val_i \le 10^9
  • 1fai<i1 \le fa_i < i
  • ci{0,1}c_i \in \{0, 1\}
  • 0ain0 \le a_i \le n

具体测试点限制如下:

测试点编号 nn \le 特殊性质
1~2 100
3~5 2×1032\times 10^3
6~8 10410^4
9~10 10510^5 A
11~12 B
13~16
17~20 5×1055\times 10^5

特殊性质 A:ci=0c_i = 0
特殊性质 B:fai=i2fa_i = \lfloor \frac{i}{2} \rfloor