P17742 [ICPC 2019 Xuzhou R] Loli, Yen-Jen, and a cool problem
题目背景
删除了原题中不和谐的内容。
题目描述
现在,Yen-Jen 正在和一位可爱的猫娘一起解决一个问题。但他昨天喝得太多了,头脑还没清醒,所以他请你帮他解决以下问题!
给定一棵有 $N$ 个顶点的有根树(顶点编号从 $1$ 到 $N$),其根为 $1$。每个节点上都有一个大写字母。
定义一种生成长度为 $L$ 的字符串的方法如下:
- 选择一个起始节点 $X$
- 向上$ $访问父节点 $L - 1$ 次
- 每次到达一个节点,就将该节点对应的大写字母追加到字符串的末尾
现在有 $Q$ 个询问,在第 $i$ 个询问中,给定一个起始节点 $X_i$。请统计有多少个起始节点 $Y$(包括 $X_i$ 自身),使得从 $Y$ 出发可以生成与从 $X_i$ 出发完全相同的字符串。
输入格式
第一行包含两个整数 $N, Q$,含义如上所述。
接下来一行,给出一个字符串 $S$,其第 $i$ 个字符表示第 $i$ 个节点上的大写字母。
再接下来一行,包含 $N - 1$ 个整数,第 $i$ 个整数表示节点 $i + 1$ 的父节点编号。
接下来 $Q$ 行,每行对应一个询问。在每行中,给出两个整数 $X_i, L_i$,含义如题目描述所述。
保证所有测试数据均为合法!
- $1 \leq N, Q \leq 3 \times 10 ^ 5$
- $1 \leq X_i, L_i \leq N$
输出格式
输出 $Q$ 行,第 $i$ 行表示第 $i$ 个询问的答案。
说明/提示
翻译由 DeepSeek V4 Pro 完成