Codeforces Round 316 (Div. 2)
D
Tree Requests
Codeforces
2200
原题
← CE →
翻译中…

Roman planted a tree consisting of $*n*$ vertices. Each vertex contains a lowercase English letter. Vertex $1$ is the root of the tree, each of the $*n* - 1$ remaining vertices has a parent in the tree. Vertex is connected with its parent by an edge. The parent of vertex $*i*$ is vertex $*p*_{*i*}$, the parent index is always less than the index of the vertex (i.e., $*p*_{*i*} < *i*$).

翻译中…

The depth of the vertex is the number of nodes on the path from the root to $*v*$ along the edges. In particular, the depth of the root is equal to $1$.

翻译中…

We say that vertex $*u*$ is in the subtree of vertex $*v*$, if we can get from $*u*$ to $*v*$, moving from the vertex to the parent. In particular, vertex $*v*$ is in its subtree.

翻译中…

Roma gives you $*m*$ queries, the $*i*$-th of which consists of two numbers $*v*_{*i*}$, $*h*_{*i*}$. Let's consider the vertices in the subtree $*v*_{*i*}$ located at depth $*h*_{*i*}$. Determine whether you can use the letters written at these vertices to make a string that is a palindrome. The letters that are written in the vertexes, can be rearranged in any order to make a palindrome, but all letters should be used.

翻译中…

Input

翻译中…

The first line contains two integers $*n*$, $*m*$ ($1 ≤ *n*, *m* ≤ 500 000$) — the number of nodes in the tree and queries, respectively.

翻译中…

The following line contains $*n* - 1$ integers $*p*_{2}, *p*_{3}, ..., *p*_{*n*}$ — the parents of vertices from the second to the $*n*$-th ($1 ≤ *p*_{*i*} < *i*$).

翻译中…

The next line contains $*n*$ lowercase English letters, the $*i*$-th of these letters is written on vertex $*i*$.

翻译中…

Next $*m*$ lines describe the queries, the $*i*$-th line contains two numbers $*v*_{*i*}$, $*h*_{*i*}$ ($1 ≤ *v*_{*i*}, *h*_{*i*} ≤ *n*$) — the vertex and the depth that appear in the $*i*$-th query.

翻译中…

Output

翻译中…

Print $*m*$ lines. In the $*i*$-th line print "Yes" (without the quotes), if in the $*i*$-th query you can make a palindrome from the letters written on the vertices, otherwise print "No" (without the quotes).

翻译中…

Note

翻译中…

String $*s*$ is a palindrome if reads the same from left to right and from right to left. In particular, an empty string is a palindrome.

翻译中…

Clarification for the sample test.

翻译中…

In the first query there exists only a vertex 1 satisfying all the conditions, we can form a palindrome "z".

翻译中…

In the second query vertices 5 and 6 satisfy condititions, they contain letters "с" and "d" respectively. It is impossible to form a palindrome of them.

翻译中…

In the third query there exist no vertices at depth 1 and in subtree of 4. We may form an empty palindrome.

翻译中…

In the fourth query there exist no vertices in subtree of 6 at depth 1. We may form an empty palindrome.

翻译中…

In the fifth query there vertices 2, 3 and 4 satisfying all conditions above, they contain letters "a", "c" and "c". We may form a palindrome "cac".

翻译中…

样例

Input #1
6 5
1 1 1 3 3
zacccd
1 1
3 3
4 1
6 1
1 2
Output #1
Yes
No
Yes
Yes
Yes
InputCopy OutputCopy
题目信息
题号
570D
时间限制
2 s
内存限制
256 MB
标签
二分
位运算
构造
DFS 及类似
图论
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。