luogu#P16019. [ICPC 2021 NAC] Permutation CFG

[ICPC 2021 NAC] Permutation CFG

题目描述

考虑 11nn 的一个排列。现在,将 11nn 的每个数字视为一个 上下文无关文法(CFG)中的非终结符。每个数字 kk 会展开为从 11kk 的整数列表,其顺序由该排列决定。例如,若 n=4n = 4 且排列为 1 4 3 21\ 4\ 3\ 2

$$\begin{aligned} 1 & \Longrightarrow 1 \\ 2 & \Longrightarrow 1\ 2 \\ 3 & \Longrightarrow 1\ 3\ 2 \\ 4 & \Longrightarrow 1\ 4\ 3\ 2 \end{aligned}$$

现在考虑如下过程:从 nn 开始,每一步都应用上述规则,将当前列表中的每个数字替换为其对应的展开式,从而得到一个新的整数列表。在上面的例子中,第一步的结果为:

1 4 3 24\overbrace{1\ 4\ 3\ 2}^{4}

第二步的结果为:

$$\overbrace{1}^{1}\ \overbrace{1\ 4\ 3\ 2}^{4}\ \overbrace{1\ 3\ 2}^{3}\ \overbrace{1\ 2}^{2}$$

第三步的结果为:

$$\overbrace{1}^{1}\ \overbrace{1}^{1}\ \overbrace{1\ 4\ 3\ 2}^{4}\ \overbrace{1\ 3\ 2}^{3}\ \overbrace{1\ 2}^{2}\ \overbrace{1}^{1}\ \overbrace{1\ 3\ 2}^{3}\ \overbrace{1\ 2}^{2}\ \overbrace{1}^{1}\ \overbrace{1\ 2}^{2}$$

给定一个排列、执行的步数,以及若干询问,每个询问要求回答在过程最终生成的列表中,某个特定整数在列表前若干个位置中出现的次数。请回答所有询问。

输入格式

输入的第一行包含三个整数 nn2n1052 \le n \le 10^5)、ss1s51 \le s \le 5)和 qq1q21051 \le q \le 2 \cdot 10^5),其中 nn 是排列的长度,ss 是过程执行的步数,qq 是询问的数量。

接下来 nn 行,每行包含一个整数 pp1pn1 \le p \le n)。这些数按顺序构成给定的排列。所有 pp 的值互不相同。

接下来 qq 行,每行包含两个整数 kk1kn1 \le k \le n)和 aa1a1091 \le a \le 10^9,且 aa 不会超过最终列表的长度)。这是一个询问,要求回答在过程生成的列表中,前 aa 个元素中整数 kk 出现的次数。

输出格式

输出 qq 行,每行一个整数,按输入顺序依次输出每个询问的答案。

4 3 6
1
4
3
2
1 6
2 20
4 1
3 5
2 9
1 1
3
6
0
1
2
8

提示

翻译由 DeepSeek V3.2 完成