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$; - 所有输入值均为整数。