luogu#P10065. [SNOI2024] 字符树

[SNOI2024] 字符树

题目描述

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

对每个点 uu,有一个价值 valu\mathit{val}_u 和一个限制 aua_u。对每个点 uu,如果点 vv 满足 SuS_uSvS_v 的后缀。那么我们认为 vv 是的 uu 扩展点。

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

Bob 获得了一个字符串 SS',他需要在 SS' 之后加入若干字符,并获得 SS''。对于某个 uu 的扩展点 vv,满足 S=SvS'' = S_v,并且 Sav\lvert S' \rvert \ge a_v,那么 Bob 就获得了 valv\mathit{val}_v 的收益,当然 Bob 只能进行一次这样的操作,所以他会选择符合条件的 vv 里,valv\mathit{val}_v 最大的那个。如果没有符合条件的 vv,Bob 只能获得 00 的收益。

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

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

形式化地说:

我们需要对每个点 uu 求出 $\mathit{ans}_u = \sum\limits_{0 \le i \le \lvert S_u \rvert} \max\limits_{i \ge a_v \land S_u = S_v[\lvert S_v \rvert - \lvert S_u \rvert + 1, \lvert S_v \rvert] \land S_u[1, i] = S_v[1, i]} \mathit{val}_v$。

特殊的,如果对于某个 uu,不存在任何 vv 满足条件,那么 max=0\max = 0

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

输入格式

多组测试数据,第一行一个整数 TT 表示数据组数。
对于每组测试数据,第一行一个正整数 nn,表示节点个数。
接下来 n1n - 1 行,每行两个整数 fai,ci\mathit{fa}_i, c_i 表示第 ii 个点的父亲编号,以及边上的字符。
接下来一行 nn 个正整数 $\mathit{val}_1, \mathit{val}_2, \ldots, \mathit{val}_n$。
接下来一行 nn 个非负整数 a1,a2,,ana_1, a_2, \ldots, a_n

输出格式

输出一行 nn 个整数 $\mathit{ans}_1, \mathit{ans}_2, \ldots, \mathit{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

提示

【样例 #1 解释】

以下表格表示当 u,iu, i 固定时,式子中 valv\mathit{val}_v 的最大值。

u=1u = 1 u=2u = 2 u=3u = 3 u=4u = 4 u=5u = 5
i=0i = 0 33 00 33 00 00
i=1i = 1 - 44 44
i=2i = 2 - 55

【样例 #2】

见附件中 tree/tree2.intree/tree2.ans

这个样例满足测试点 353 \sim 5 的条件限制。


【样例 #3】

见附件中 tree/tree3.intree/tree3.ans

这个样例满足测试点 9109 \sim 10 的条件限制。


【样例 #4】

见附件中 tree/tree4.intree/tree4.ans

这个样例满足测试点 111211 \sim 12 的条件限制。


【数据范围】

对于所有数据保证 1T51 \le T \le 51n5×1051 \le n \le 5 \times {10}^51vali1091 \le \mathit{val}_i \le {10}^91fai<i1 \le \mathit{fa}_i < ici={0,1}c_i = \{0, 1\}0ain0 \le a_i \le n

具体如下:

测试点编号 nn \le 特殊性质
121 \sim 2 100100
353 \sim 5 2×1032 \times {10}^3
686 \sim 8 104{10}^4
9109 \sim 10 105{10}^5 A
111211 \sim 12 B
131613 \sim 16
172017 \sim 20 5×1055 \times {10}^5

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