#P2025052903. 加减与异或和(上一题加强版)

加减与异或和(上一题加强版)

题目描述

给你一个初始长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_n,接下来有 qq 次操作,操作分为如下三种类型:

  • 1 x:在数列 aa 的末尾加入一个数值为 xx 的元素(即:令 nn 增加 11,然后令 an=xa_n = x
  • 2:将数列 aa 中每个元素的数值都增加 11
  • 3:将数列 aa 中每个元素的数值都减小 11
  • 4:求数列 aa 中所有元素的异或和(即求:a1a2ana_1 \oplus a_2 \oplus \ldots \oplus a_n,这里 \oplus 是异或符号)。

数据保证:每次执行 3 操作前数列中所有元素的均大于 00

对于每次 4 操作,要求输出对应的结果。

输入格式

第一行,两个整数 nnqq,以空格分隔,分别表示初始数列 aa 的长度以及操作次数。

第二行,nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,以空格分隔。

接下来 qq 行,每行包含一个操作,形如 1 x234

输出格式

对于每次 4 操作,输出一行,包含一个整数,表示数列 aa 中所有元素的异或和。

样例

3 5
1 2 3
4
1 5
4
2
4
0
5
3
12 10
100 20 17 85 99 62 37 58 3 108 120 55
1 7
4
2
4
1 15
1 78
3
4
1 130
4
81
82
18
144

说明/提示

样例 1 解释

初始的序列为 [1,2,3][ 1, 2, 3 ]

11 次操作为询问异或和,数列中所有元素的异或和为 123=01 \oplus 2 \oplus 3 = 0

22 次操作为加入一个数值为 55 的元素,此时数列变为 [1,2,3,5][1, 2, 3, 5]

33 次操作为询问异或和,数列中所有元素的异或和为 1235=51 \oplus 2 \oplus 3 \oplus 5 = 5

44 次操作为将数列中的每个元素的数值 +1+1,操作后数列变为 [2,3,4,6][ 2, 3, 4, 6 ]

55 次操作为询问异或和,数列中所有元素的异或和为 2346=32 \oplus 3 \oplus 4 \oplus 6 = 3

数据规模与约定

2020 个测试点。

测试点编号 n,qn,q ai,xa_i, x 特殊性质
151 \sim 5 200\le 200 210\le 2^{10}
6106 \sim 10 2105\le 2 \cdot 10^5 220\le 2^{20} 没有 1 操作
111511 \sim 15 没有 3 操作
162016 \sim 20 2100\le 2 \cdot 100

所有测试数据的 n,qn,q1\ge 1ai,xa_i, x0\ge 0