CF1771D.Hossam and (sub-)palindromic tree
提高+/省选-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Hossam has an unweighted tree G with letters in vertices.
Hossam defines s(v,u) as a string that is obtained by writing down all the letters on the unique simple path from the vertex v to the vertex u in the tree G.
A string a is a subsequence of a string s if a can be obtained from s by deletion of several (possibly, zero) letters. For example, "dores", "cf", and "for" are subsequences of "codeforces", while "decor" and "fork" are not.
A palindrome is a string that reads the same from left to right and from right to left. For example, "abacaba" is a palindrome, but "abac" is not.
Hossam defines a sub-palindrome of a string s as a subsequence of s, that is a palindrome. For example, "k", "abba" and "abhba" are sub-palindromes of the string "abhbka", but "abka" and "cat" are not.
Hossam defines a maximal sub-palindrome of a string s as a sub-palindrome of s, which has the maximal length among all sub-palindromes of s. For example, "abhbka" has only one maximal sub-palindrome — "abhba". But it may also be that the string has several maximum sub-palindromes: the string "abcd" has 4 maximum sub-palindromes.
Help Hossam find the length of the longest maximal sub-palindrome among all s(v,u) in the tree G.
Note that the sub-palindrome is a subsequence, not a substring.
霍桑有一棵无权树 G,其顶点上标有字母。
霍桑将 s(v,u) 定义为:在树 G 中,从顶点 v 到顶点 u 的唯一简单路径上所有顶点所标字母按顺序写出所构成的字符串。
若字符串 a 可通过从字符串 s 中删除若干(可能为零个)字母得到,则称 a 是 s 的一个子序列。例如,“dores”、“cf” 和 “for” 都是 “codeforces” 的子序列,而 “decor” 和 “fork” 则不是。
回文串(palindrome)是指正读与反读都相同的字符串。例如,“abacaba” 是回文串,但 “abac” 不是。
霍桑将字符串 s 的一个子回文串(sub-palindrome)定义为:s 的一个子序列,且该子序列本身是回文串。例如,“k”、“abba” 和 “abhba” 都是字符串 “abhbka” 的子回文串,而 “abka” 和 “cat” 则不是。
霍桑将字符串 s 的一个最长子回文串(maximal sub-palindrome)定义为:s 的一个子回文串,且其长度在 s 的所有子回文串中达到最大。例如,“abhbka” 仅有一个最长子回文串——“abhba”。但字符串也可能存在多个长度相同的最长子回文串:例如,“abcd” 有 4 个最长子回文串。
请帮助霍桑找出:在树 G 中所有 s(v,u) 对应的字符串中,其最长子回文串的最大长度。
注意:此处的子回文串指的是子序列,而非子串。
输入格式
The first line contains one integer t (1≤t≤200) — the number of test cases.
The first line of each test case has one integer number n (1≤n≤2⋅103) — the number of vertices in the graph.
The second line contains a string s of length n, the i-th symbol of which denotes the letter on the vertex i. It is guaranteed that all characters in this string are lowercase English letters.
The next n−1 lines describe the edges of the tree. Each edge is given by two integers v and u (1≤v,u≤n, v=u). These two numbers mean that there is an edge (v,u) in the tree. It is guaranteed that the given edges form a tree.
It is guaranteed that sum of all n doesn't exceed 2⋅103.
第一行包含一个整数 t(1≤t≤200)—— 测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅103)—— 图中顶点的数量。
第二行包含一个长度为 n 的字符串 s,其中第 i 个字符表示顶点 i 上的字母。保证该字符串中的所有字符均为小写英文字母。
接下来的 n−1 行描述树的边。每条边由两个整数 v 和 u(1≤v,u≤n,且 v=u)给出。这两个数表示树中存在一条边 (v,u)。保证所给的边构成一棵树。
保证所有 n 的总和不超过 2⋅103。
输出格式
For each test case output one integer — the length of the longest maximal sub-palindrome among all s(v,u).
对于每个测试用例,输出一个整数——所有 s(v,u) 中最长的极大回文子串的长度。
输入输出样例
输入#1
2 5 abaca 1 2 1 3 3 4 4 5 9 caabadedb 1 2 2 3 2 4 1 5 5 6 5 7 5 8 8 9
输出#1
3 5
说明/提示
In the first example the maximal subpalindromes are "aaa" with letters in vertices 1,3,5, or "aca" with letters in vertices 1,4,5.
The tree from the first example.
In the second example there is only one maximal palindrome "bacab" with letters in vertices 4,2,1,5,9.
The tree from the second example.
在第一个例子中,最长回文子串为 “aaa”,对应顶点 1,3,5 上的字母;或 “aca”,对应顶点 1,4,5 上的字母。
第一个例子中的树。
在第二个例子中,仅存在一个最长回文子串 “bacab”,对应顶点 4,2,1,5,9 上的字母。
第二个例子中的树。
输入解题思路,AI测评打分。不知道怎么写?