luogu#P16364. [OOI 2026] Permutations and Queries

[OOI 2026] Permutations and Queries

题目描述

给定一个长度为 nn 的排列 pp。一个长为 nn 的排列是一个由 11nnnn 个不同整数以任意顺序构成的数组。我们定义排列的 代价 为从 i=1i = 1nn(pi)i\left(p_i\right)^i 之和(排列的第 ii 个元素的 ii 次幂)。因此,排列 pp代价

i=1n(pi)i.\sum\limits_{i=1}^n \left(p_i\right)^i .

共有 qq 个询问,分为三种类型:

  • 反转:此后,你的排列 pp 被替换为排列 qq,使得对所有 ii11nnqi=pni+1q_i = p_{n - i + 1}
  • 取反:此后,你的排列 pp 被替换为排列 qq,使得对所有 ii11nnqi=npi+1q_i = n - p_i + 1
  • 求逆:此后,你的排列 pp 被替换为排列 qq,使得对所有 ii11nnqpi=iq_{p_i} = i

注意,每次操作后,pp 仍为一个排列。

每次询问后,你需要输出该排列的 代价

输入格式

第一行包含两个整数 nnqq1n,q1000001 \leq n, q \leq 100\,000)—— 排列的长度及询问的数量。

第二行包含 nn 个正整数 p1p_1, p2p_2, \ldots, pnp_n1pin1 \leq p_i \leq n)—— 排列的元素。保证所有 pip_i 两两不同。

第三行包含 qq 个正整数 b1b_1, b2b_2, \ldots, bqb_q1bi31 \leq b_i \leq 3)—— 询问的描述。数字 bib_i 表示第 ii 个要施加于排列的修改询问的类型为 bib_i

输出格式

输出 qq 个数,第 ii 个数为应用前 ii 个询问后,排列的 代价998244353998\,244\,353 取余的结果。

5 5
1 2 3 4 5
1 2 3 1 2
65 3413 3413 65 3413
5 6
5 3 1 4 2
3 3 1 2 3 1
293 303 3225 215 317 3209

提示

样例解释

我们来分析第二个样例。

初始时,p=[5,3,1,4,2]p = [5, 3, 1, 4, 2]

第一个询问是类型 33,即求逆。此询问后的排列变为 [3,5,2,4,1][3, 5, 2, 4, 1]。该排列的 代价 为 $3^1 + 5^2 + 2^3 + 4^4 + 1^5 = 3 + 25 + 8 + 256 + 1 = 293$。

第二个询问是类型 33,即求逆。此询问后的排列变为 [5,3,1,4,2][5, 3, 1, 4, 2]。该排列的 代价 为 $5^1 + 3^2 + 1^3 + 4^4 + 2^5 = 5 + 9 + 1 + 256 + 32 = 303$。

第三个询问是类型 11,即反转。此询问后的排列变为 [2,4,1,3,5][2, 4, 1, 3, 5]。该排列的 代价21+42+13+34+55=32252^1 + 4^2 + 1^3 + 3^4 + 5^5 = 3225

第四个询问是类型 22,即取反。此询问后的排列变为 [4,2,5,3,1][4, 2, 5, 3, 1]。该排列的 代价41+22+53+34+15=2154^1 + 2^2 + 5^3 + 3^4 + 1^5 = 215

第五个询问是类型 33,即求逆。此询问后的排列变为 [5,2,4,1,3][5, 2, 4, 1, 3]。该排列的 代价51+22+43+14+35=3175^1 + 2^2 + 4^3 + 1^4 + 3^5 = 317

最后一个询问是类型 11,即反转。此询问后的排列变为 [3,1,4,2,5][3, 1, 4, 2, 5]。该排列的 代价31+12+43+24+55=32093^1 + 1^2 + 4^3 + 2^4 + 5^5 = 3209

计分

本题的测试数据分为五组。每组仅在通过该组内全部测试以及此前某些组的全部测试后,才能获得分数。注意,某些组不要求通过样例测试。每组的最终得分等于你所有提交的解答中在该组测试上获得的最高分。

子任务编号 分数 额外限制 < 必过组别 备注
nn qq
0 -- 题面样例。
1 15 n1000n \leq 1000 q1000q \leq 1000 0
2 22 -- -- 对所有 1i,jq1 \leq i, j \leq qbi=bjb_i = b_j
3 26 对所有 1iq1 \leq i \leq qbi2b_i \leq 2
4 16 对所有 1in1 \leq i \leq npi=ip_i = i
5 21 0--4

翻译由 DeepSeek V4 Pro 完成