#loj5734. 「OOI 2026 Day1」置换与询问

「OOI 2026 Day1」置换与询问

#5734. 「OOI 2026 Day1」置换与询问

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

题目译自 Open Olympiad in Informatics 2026 Day1 T2 「Перестановки и запросы」 / 「Permutations and Queries

给你一个长度为 nn 的置换 pp。长度为 nn 的置换是由 11nnnn 个不同的整数按任意顺序组成的数组。我们定义置换的代价为所有满足 1in1 \leq i \leq n(pi)i(p_i)^i 之和(即置换的第 ii 个元素的 ii 次幂)。因此,置换 pp 的代价等于:

i=1n(pi)i\sum_{i=1}^{n}(p_{i})^{i}

现在有 qq 个三种类型的询问:

  1. 左右翻转:在此操作后,你的置换 pp 将被替换为置换 qq,使得对于所有 1in1 \leq i \leq n,均有 qi=pni+1q_i = p_{n-i+1}
  2. 数值翻转:在此操作后,你的置换 pp 将被替换为置换 qq,使得对于所有 1in1 \leq i \leq n,均有 qi=npi+1q_i = n - p_i + 1
  3. 求逆置换:在此操作后,你的置换 pp 将被替换为置换 qq,使得对于所有 1in1 \leq i \leq n,均有 qpi=iq_{p_i} = i

请注意,每次操作后 pp 仍然是一个置换。

在每个询问之后,你需要输出置换的代价。

输入格式

第一行包含两个整数 nnqq (1n,q100000)(1 \leq n, q \leq 100000),分别表示置换的长度和询问的数量。

第二行包含 nn 个正整数 p1,p2,,pnp_1, p_2, \dots, p_n (1pin)(1 \leq p_i \leq n),表示置换的元素。保证所有的 pip_i 互不相同。

第三行包含 qq 个正整数 b1,b2,,bqb_1, b_2, \dots, b_q (1bi3)(1 \leq b_i \leq 3),表示询问的描述。数字 bib_i 意味着需要对置换应用的第 ii 个修改操作类型为 bib_i

输出格式

输出 qq 个整数,其中第 ii 个整数表示在应用前 ii 个询问后,置换代价对 998244353998244353 取模后的余数。

样例 1

输入

5 5
1 2 3 4 5
1 2 3 1 2

输出

65 3413 3413 65 3413

样例 2

输入

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]。该置换的代价为 $2^1 + 4^2 + 1^3 + 3^4 + 5^5 = 2 + 16 + 1 + 81 + 3125 = 3225$。

第四个询问的类型是 22,即数值翻转。操作后置换变为 [4,2,5,3,1][4, 2, 5, 3, 1]。该置换的代价为 $4^1 + 2^2 + 5^3 + 3^4 + 1^5 = 4 + 4 + 125 + 81 + 1 = 215$。

第五个询问的类型是 33,即求逆置换。操作后置换变为 [5,2,4,1,3][5, 2, 4, 1, 3]。该置换的代价为 $5^1 + 2^2 + 4^3 + 1^4 + 3^5 = 5 + 4 + 64 + 1 + 243 = 317$。

最后一个询问的类型是 11,即左右翻转。操作后置换变为 [3,1,4,2,5][3, 1, 4, 2, 5]。该置换的代价为 $3^1 + 1^2 + 4^3 + 2^4 + 5^5 = 3 + 1 + 64 + 16 + 3125 = 3209$。

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 nn 限制 qq 限制 附加限制 子任务依赖
11 1515 n1000n \leq 1000 q1000q \leq 1000 00
22 2222 - - 对于所有 1i,jq1 \leq i, j \leq q,满足 bi=bjb_i = b_j -
33 2626 对于所有 1iq1 \leq i \leq q,满足 bi2b_i \leq 2
44 1616 对于所有 1in1 \leq i \leq n,初始满足 pi=ip_i = i
55 2121 无附加限制 0,1,2,3,40, 1, 2, 3, 4