时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
            空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
              芭芭拉这次来到了一棵字母树,这同样是一棵无根树,每个节点上面有一个小写字母。 
   芭芭拉想知道,自己从x冲刺到y,从x走到y收集所有字母,选择其中一部分字母组成一个回文串,这个回文串的最大长度是多少? 
   同样的,芭芭拉冲刺的时候是不能掉头的。
 
 一共有q次询问。每次的询问是独立的(即本次收集字母不影响之后的询问,每次询问时字母都是未被收集状态)。
输入描述:
                                                    第一行有一个正整数 。
。 
接下来的 行,每行输入两个正整数
行,每行输入两个正整数 和
和 ,代表
,代表 和
和 之间有一条无向边相连。
之间有一条无向边相连。 
接下来一行有一个长度为 的字符串,字符串仅由小写字母构成。第
的字符串,字符串仅由小写字母构成。第 个字符表示节点
个字符表示节点 上的字母。
上的字母。 
接下来一行是一个正整数 ,代表询问次数。
,代表询问次数。 
(保证输入一定是一棵树)
%20%5C)
                                                                            输出描述:
                                                    对应每次询问,输出一个正整数,代表回文串的最大长度。
                                                                            
                        
                            示例1
                        
                        
                            
                                输入
                                复制
                                
                                
                                    5
1 2
1 3
2 4
2 5
abcba
3
4 5
1 2
3 3
                                 
                             
                            
                                                            
                                    说明
                                    
                                        这棵树的构造如下:
对于第一个询问,芭芭拉冲刺的路径是4-2-5,收集的字母有两个b一个a,可以构建的最长回文串是"bab",长度为3。
对于第二个询问,芭芭拉冲刺的路径是1-2,收集的字母有一个b一个a,可以构建的最长回文串是"a"(也可以是"b"),长度为1。
对于第三个询问,芭芭拉起点和终点都是3,所以站在原地不动,收集的字母有只有一个c,可以构建的最长回文串是"c",长度为1。