区间异或
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
问题陈述
我们有一个长度为 的整数序列 。你将对这个序列处理 个查询。在第 个查询中,给定值 、 和 ,执行以下操作:
- 如果 ,则用 替换 。
- 如果 ,则打印 $A_{X_i} \oplus A_{X_i + 1} \oplus \ldots \oplus A_{Y_i}$。
这里, 表示 和 的按位异或。
约束条件
- 为 1 或 2。
- 如果 ,那么 且 。
- 如果 ,那么 。
- 输入中的所有值都是整数。
输入格式
- 输入的第一行包含两个整数, 和 ,分别代表序列的长度和查询的数量。
- 第二行包含 个整数,表示序列 。
- 接下来的 行,每行包含三个整数 、 和 ,描述一个查询。
输出格式
对于每个接收到的 的查询,按接收顺序在单独的行中打印响应。
样例输入 1
3 4
1 2 3
2 1 3
2 2 3
1 2 3
2 2 3
样例输出 1
0
1
2
在第一个查询中,我们打印 。 在第二个查询中,我们打印 。 在第三个查询中,我们用 替换 。 在第四个查询中,我们打印 。
样例输入 2
10 10
0 5 3 4 7 0 0 0 1 0
1 10 7
2 8 9
2 3 6
2 1 6
2 1 10
1 9 4
1 6 1
1 6 3
1 1 7
2 3 5
样例输出 2
1
0
5
3
0