logo AlgoBeat OnlineJudge
登录 注册

#214038. [ICPC 2023 Nanjing R] 后缀结构

内存限制:1024 MiB 时间限制:2000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

给定字符串 ,令 表示前缀 。特别地, 是空字符串。

对于两个字符串 ,令 表示连接后的字符串

给定长度为 的字符串 和一棵有 个节点的树 ,节点编号为 ,其中节点 是根。每条边上都有一个字符。请注意,在本题中,字母表中可能会有多于 个字符。

考虑如下函数 f(i,j) = \max{d(x) \mid s_x\text{ 是 }s_i+ \mathrm{pre}(t,j)\text{ 的后缀}} 其中 是从根到节点 的最短路径上所有字符连接而成的字符串, 是从根到节点 的最短路径经过的边数。

您需要计算 ,其中

请注意, 是空字符串,空字符串是任何字符串的后缀。

输入格式

有多组测试数据。第一行输入一个整数 表示测试数据组数,对于每组测试数据:

第一行输入两个整数 )。

第二行输入 个整数 ),其中 表示节点 的父节点。

第三行输入 个整数 ),其中 表示从节点 到节点 的边上的字符是字母表中第 个字符。保证对于所有 ,有

第四行输入 个整数 ),其中 是字符串 中的第 个字符。

保证所有数据 之和与 之和均不超过

输出格式

每组数据输出一行 个由单个空格分隔的整数

请不要在行末输出多余空格,否则您的答案可能会被认为是错误的!

样例

样例输入 1

2
11 3
0 1 2 0 4 5 4 6 0 9 10
1 3 2 2 1 3 4 1 3 2 1
3 2 4
5 16
0 0 0 1 4
1 2 3 2 2
2 1 3 3 2 1 3 2 1 3 2 2 1 1 2 1

样例输出 1

17 26 22
8 5 5 5 5 5 5 5 5 5 5 5 5 5 10 5

数据范围与提示

我们来计算第一组样例数据中的 以便您更好地理解。有 ,所以 。因为 是该字符串存在于树中的最长后缀,所以 。另外 ,那么 是该字符串存在于树中的最长后缀,所以