AT_abc470_c [ABC470C] Inc, Dec, Xor
题目描述
有一个长度为 $N$ 的整数序列 $A = (A_1, A_2, \dots, A_N)$。初始时,$A$ 的所有元素均为 $0$。
按顺序处理 $Q$ 个查询,查询有以下两种类型:
- `1 x`:将 $A_x$ 的值增加 $1$。
- `2`:对于所有 $i = 1, 2, \dots, N$,如果 $A_i \ge 1$,则将 $A_i$ 的值减少 $1$。
请输出每个查询处理完成后,$A_1, A_2, \dots, A_N$ 的按位异或(XOR)值。
---
**按位异或运算的定义**:
对于非负整数 $A, B$,其按位异或 $A \oplus B$ 定义如下:
- 在 $A \oplus B$ 的二进制表示中,第 $k$ 位($k \ge 0$)为 $1$,当且仅当 $A$ 和 $B$ 的第 $k$ 位中恰好有一个为 $1$;否则为 $0$。
例如,$3 \oplus 5 = 6$(二进制:$011 \oplus 101 = 110$)。
一般地,$k$ 个非负整数 $p_1, p_2, \dots, p_k$ 的按位异或定义为 $(\dots((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k)$,可以证明其结果与计算顺序无关。
输入格式
输入第一行包含两个整数 $N, Q$。
接下来 $Q$ 行,每行描述一个查询,格式为以下两种之一:
- `1 x`
- `2`
输出格式
输出 $Q$ 行,第 $i$ 行输出第 $i$ 个查询处理完成后,$A_1, A_2, \dots, A_N$ 的按位异或值。
说明/提示
**【样例 1 解释】**
1. 第 $1$ 个查询后,$A = (0, 1)$,$0 \oplus 1 = 1$,输出 $1$。
2. 第 $2$ 个查询后,$A = (0, 2)$,$0 \oplus 2 = 2$,输出 $2$。
3. 第 $3$ 个查询后,$A = (1, 2)$,$1 \oplus 2 = 3$,输出 $3$。
4. 第 $4$ 个查询后,$A = (0, 1)$,$0 \oplus 1 = 1$,输出 $1$。
5. 第 $5$ 个查询后,$A = (0, 0)$,$0 \oplus 0 = 0$,输出 $0$。
**【数据范围】**
- $1 \le N \le 5 \times 10^5$;
- $1 \le Q \le 5 \times 10^5$;
- $1 \le x \le N$;
- 所有输入值均为整数。