Misha有一棵树,顶点上写有字符。他可以选择这棵树的两个顶点s和t,并写下位于从s到t的路径上的顶点的字符。
Misha有m个类型的查询:给你4个顶点a、b、c、d;您需要找到对应于对(a,b)和(c,d)的字符串的最大公共前缀。你的任务是帮助他。
6 bbbabb 2 1 3 2 4 3 5 2 6 5 6 2 5 3 1 1 5 2 3 5 6 5 6 6 3 4 1 6 2 3 4 2 2 4 5
2 2 2 0 1 0
第一行包含整数n(1≤n≤300000)−树中的顶点数。
接下来是由n个小英文字母组成的行。字符串的第i个字符对应于写在第i个顶点上的字符。
接下来的n-1行包含关于边的信息。一条边由一对整数u,v(1≤u,v≤n,u≠v)定义,用空格隔开。
下一行包含整数m(1≤m≤1000000)−查询数。
接下来的m行包含有关查询的信息。查询由四个整数A、b、c、d(1≤A、b,c、d≤n)定义,用空格分隔。
对于每个查询,在单独的行上打印最大公共前缀的长度。
6
bbbabb
2 1
3 2
4 3
5 2
6 5
6
2 5 3 1
1 5 2 3
5 6 5 6
6 3 4 1
6 2 3 4
2 2 4 5
2
2
2
0
1
0