#ABC185F. 异或查询

异或查询

异或查询

题目描述

有长度为 NN 的整数数列 AA

你从现在开始要处理关于这个数列的 QQ 个查询。在第 ii 个查询中,给定 Ti,Xi,YiT_i, X_i, Y_i,请进行以下处理:

  • Ti=1T_i = 1

    AXiA_{X_i} 替换为 AXiYiA_{X_i} \oplus Y_i

  • Ti=2T_i = 2

    输出 $A_{X_i} \oplus A_{X_i + 1} \oplus A_{X_i + 2} \oplus \dots \oplus A_{Y_i}$

其中,aba \oplus b 表示 aabb 的按位异或。

输入格式

输入按以下格式从标准输入给出:

NN QQ
A1A_1 A2A_2 A3A_3 \dots ANA_N
T1T_1 X1X_1 Y1Y_1
T2T_2 X2X_2 Y2Y_2
T3T_3 X3X_3 Y3Y_3
\hspace{22pt} \vdots
TQT_Q XQX_Q YQY_Q

输出格式

对于每个满足 Ti=2T_i = 2 的查询,按顺序每行输出 11 个答案。

样例

3 4
1 2 3
2 1 3
2 2 3
1 2 3
2 2 3
0
1
2

11 个查询输出 123=01 \oplus 2 \oplus 3 = 0

22 个查询输出 23=12 \oplus 3 = 1

33 个查询将 A2A_2 替换为 23=12 \oplus 3 = 1

44 个查询输出 13=21 \oplus 3 = 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
1
0
5
3
0

数据范围

  • 1N3000001 \le N \le 300000
  • 1Q3000001 \le Q \le 300000
  • 0Ai<2300 \le A_i \lt 2^{30}
  • TiT_i1122
  • Ti=1T_i = 1,则 1XiN1 \le X_i \le N0Yi<2300 \le Y_i \lt 2^{30}
  • Ti=2T_i = 2,则 1XiYiN1 \le X_i \le Y_i \le N
  • 输入均为整数

提示

什么是按位异或

整数 A,BA, B 的按位异或 ABA \oplus B 定义如下:

  • ABA \oplus B 用二进制表示时,2k2^kk0k \geq 0)位的数字是:当 A,BA, B 用二进制表示时 2k2^k 位的数字中只有一方为 11 时为 11,否则为 00

例如,35=63 \oplus 5 = 6(用二进制表示:011101=110011 \oplus 101 = 110)。

难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2051
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签