2764: T3 徐老师的春秋大梦

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:0

题目描述

> 【睿爸信奥】的学生都被其他老师拐走了,徐老师没课上,他觉得很无聊,于是趴在课桌上深深睡去。

徐老师梦见来很多很多优秀的学生,形成了一棵大小为 $n$ 的有根树,根节点为 $1$ 号点,且根节点的深度为 $1$ 。

树上每个结点代表徐老师的一个学生,每个结点有一个名字 $s_i$,用小写字母 $a\sim z$ 表示表示。

徐老师对他的学生很满意,于是他开始了 $m$ 次点名,每次点名会把结点 $u$ 的子树中,深度为 $k$ 的结点的名字都取出来,然后进行**重排**。

现在徐老师想知道,重排后能否形成一个回文串?

回文串定义为一个字符串从左往右读,和从右往左读是一样的,比如`aabbcbbaa`、`abba` 等。

输入

第一行两个数 $n,m$,表示树上结点个数和徐老师点名的次数。

第二行 $n-1$ 个数,第 $i$ 个数表示树上第 $i+1$ 的节点的父亲结点的编号 $p_i$,保证父亲结点的编号比该结点小。

第三行是一个长度为 $n$ 的字符串 $s$,其中 $s_i$ 表示 $i$ 号结点的名字

接下来 $m$ 行,每行一个询问 $u,k$,表示查询的是 $u$ 子树中深度为 $k$ 的结点。

输出

$m$ 行,如果能构成回文串,输出`huiwen`,否则输出`?`。

样例输入 复制

8 7
1 1 2 2 5 5 3
dacxyppx
1 1
1 2
1 3
1 4
2 2
2 3
3 3

样例输出 复制

huiwen
?
huiwen
huiwen
huiwen
?
huiwen

提示

## 样例解释:

询问 $1$ ,`a` 是回文;

询问 $2$ ,`ac` 重排不出回文串;

询问 $3$ ,`xyx` 是回文;

询问 $4$ ,`pp`是回文;

询问 $5$ ,`a` 是回文;

询问 $6$ ,`xy` 重排不出回文串;

询问 $7$ ,`x` 是回文。

## 数据范围

对于全部数据 $1\le n,m\le10^4$,$1\le r_i\le n-1$,$1\le x\le n$。

|        测试点         |                           $n,m $                            |                  特殊性质                  |
| :-------------------: | :----------------------------------------------------------: | :----------------------------------------: |
| 对于前 $20 \%$ 的数据 |                   $n\leq 10$, $m\le 20$。                   |                     无                     |
| 对于前 $40 \%$ 的数据 |                       $n,m \leq 1000$                        |                     无                     |
|   对于$100\%$的数据   | $1\le n,m\leq 10^4$, $1 \le p_i<i$, $s_i$ 为小写英文字母, $1\le u ,k\le n$ | 保证 $u$ 子树内至少有一个深度为 $k$ 的结点 |

来源/分类