#W1113. 回文路径

回文路径

【题目描述】

BingBongBingBong 有一棵有根树,根节点为 11,总共有 nn 个节点。树中的节点通过 n1n-1 条无向边相连,每条边的权重为 11。树中的每个节点包含一个小写字母。

BingBongBingBong 将选择从节点 uu 开始,并在选择最短路径的情况下到达节点 vv。他想知道他所走路径形成的字符串是否是一个回文串。由于他会进行多次行走,您需要回答多个查询。

【输入格式】

第一行包含一个整数 nn,表示节点的数量。

第二行包含 nn 个小写字母,其中第 ii 个字母表示第 ii 个节点上的小写字母。

第三行包含 nn 个整数,其中第 ii 个数字 aia_i 表示第 ii 个节点的父节点,对于根节点 ai=0a_i=0

第四行包含一个整数 qq ,表示查询的数量。

接下来是 qq 行,每行包含两个整数 uuvv,表示一个查询的起点和终点

【输出格式】

输出 qq 行,每行包含一个字符串。如果查询的起点到终点的路径连接形成一个回文串,则输出YES,否则输出NO

【样例 1】

5
bbaaa
0 1 1 2 2
3
2 3
4 3
5 3
NO
YES
YES

【样例 1 解释】

  • 11 次询问 bba 不是回文串
  • 22 次询问 abba 是回文串
  • 33 次询问 abba 是回文串

【样例 2】

15
bbaaabbaaabbaaa
0 1 1 2 2 3 3 5 5 7 7 9 9 11 11
14
6 7
7 15
15 7
11 15
15 11
3 15
7 11
2 2
3 7
3 11
4 3
3 4
6 15
10 15
YES
NO
NO
NO
NO
YES
YES
YES
NO
NO
YES
YES
NO
YES

【样例解释2】

前三次询问:

  • 11 次询问 bab 是回文串
  • 22 次询问 bba 不是回文串
  • 33 次询问 abb 不是回文串

【数据规模与约定】

对于 100%100\% 的数据满足:

  • 1n1.5×1051\leq n\leq 1.5\times 10^5
  • 1aii11\leq a_i\leq i-1
  • 1q1051\leq q\leq 10^5