#abc470c. Inc, Dec, Xor

    ID: 4381 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>普及/提高-均摊分析位运算模拟

Inc, Dec, Xor

题目描述

有一个长度为 NN 的整数序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N),初始时所有元素都是 00

给出 QQ 个询问,请按顺序处理。询问有两种,格式如下:

  • 1 x:把 AxA_x 的值增加 11
  • 2:对每个 i=1,2,,Ni = 1, 2, \ldots, N,若 Ai1A_i \ge 1 则把 AiA_i 减少 11(等于 00 的保持不变)。

请在处理完每个询问之后,输出 A1,A2,,ANA_1, A_2, \ldots, A_N按位异或XOR\mathrm{XOR})值。

什么是按位异或?

非负整数 AABB 的按位异或 ABA \oplus B 定义为:ABA \oplus B 的二进制表示中 2k2^k 位上的数字,当 AABB 二进制表示中 2k2^k 位的数字恰有一个是 11 时为 11,否则为 00

例如 35=63 \oplus 5 = 6(二进制:011101=110011 \oplus 101 = 110)。多个数的异或与顺序无关。

输入格式

N Q
query_1
query_2
...
query_Q

其中每个询问是下面两种格式之一:

1 x
2

输出格式

输出 QQ 行,第 ii 行是处理完第 ii 个询问后所有元素的异或值。

输入示例 1

2 5
1 2
1 2
1 1
2
2

输出示例 1

1
2
3
1
0

示例 1 说明

  • 11 个询问后 A=(0,1)A = (0, 1)01=10 \oplus 1 = 1
  • 22 个询问后 A=(0,2)A = (0, 2)02=20 \oplus 2 = 2
  • 33 个询问后 A=(1,2)A = (1, 2)12=31 \oplus 2 = 3
  • 44 个询问(类型 2)后 A=(0,1)A = (0, 1),异或为 11
  • 55 个询问(类型 2)后 A=(0,0)A = (0, 0),异或为 00注意第 11 个元素已经是 00,不会变成 1-1

输入示例 2

3 8
1 2
1 3
1 1
1 2
1 1
2
1 3
1 1

输出示例 2

1
0
1
2
1
0
1
2

示例 2 说明

66 个询问是类型 22:此前 A=(2,2,1)A = (2, 2, 1),全部减 11 后变成 (1,1,0)(1, 1, 0),异或为 110=01 \oplus 1 \oplus 0 = 0

约束条件

  • 1N5×1051 \le N \le 5 \times 10^5
  • 1Q5×1051 \le Q \le 5 \times 10^5
  • 1xN1 \le x \le N
  • 所有输入值均为整数