QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#9712. Loli, Yen-Jen, and a cool problem

الإحصائيات

Yen-Jen 非常喜欢萝莉!!!

现在,他正在和一个可爱的猫耳萝莉一起解决一个问题。但他昨天喝得太多,脑子还没清醒,所以他请求你帮他解决以下问题!

给定一棵以 $1$ 为根的有根树,共有 $N$ 个顶点(顶点编号从 $1$ 到 $N$)。每个节点上都有一个大写英文字母。

定义一种生成长度为 $L$ 的字符串的方法如下:

  • 选择一个起始节点 $X$
  • 向父节点移动 $L - 1$ 次
  • 每到达一个节点,就将该节点对应的英文字母追加到字符串末尾

现在有 $Q$ 次询问,在第 $i$ 次询问中,给定一个起始节点 $X_i$ 和长度 $L_i$。请计算有多少个起始节点 $Y$(包含 $X_i$ 本身),使得从 $Y$ 出发生成的字符串与从 $X_i$ 出发生成的字符串相同。

输入格式

输入的第一行包含两个整数 $N, Q$。

下一行给出一个字符串 $S$,其中第 $i$ 个字符表示第 $i$ 个节点上的英文字母。

接下来一行包含 $N - 1$ 个整数,第 $i$ 个整数表示节点 $i + 1$ 的父节点。

接下来有 $Q$ 行,第 $i$ 行表示第 $i$ 次询问。每行给出 $X_i, L_i$,含义如题目描述所述。

保证测试数据合法。

  • $1 \leq N, Q \leq 3 \times 10 ^ 5$
  • $1 \leq X_i, L_i \leq N$

输出格式

输出 $Q$ 行,第 $i$ 行表示第 $i$ 次询问的答案。

样例

样例输入 1

6 3
ABABBA
1 1 3 3 4
2 2
2 1
6 4

样例输出 1

3
3
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.