#P11872. 异或盒子 1

异或盒子 1

题目背景

"诶?我当数据结构?真的假的?"

题目描述

小威有一个神奇的异或盒子!

盒子中有 nn 个元素,每个元素都有一个权值 viv_i。每当小威念出神秘咒语之时,盒子可以告诉小威,盒子中元素的异或和是多少。

有一天,这个盒子被小海发现了。小海问小威:"我能不能向盒子提 qq 个要求?我希望改变盒子中某一个元素的权值,或者让所有元素的权值都 +1+1。除此之外,我还想念你那个神秘的咒语!""好啊,没问题啊。"

你可能想问,"那我呢?"

你就是这个神奇的异或盒子!现在请你满足小海的要求吧!

输入格式

第一行包含两个整数 nnqq,含义如上所述。

第二行包含 nn 个整数 viv_i

接下来 qq 行,每行首先输入一个整数 opop,表示要求种类:

  • op=0op = 0:输入格式为 op x pop\ x\ p,表示将 vxv_x 更改为 pp
  • op=1op = 1:输入格式为 opop,表示将所有的元素权值 +1+1
  • op=2op = 2:输入格式为 opop,表示查询所有元素的异或和。

对于所有数据,满足:1n,q1051 \leq n, q \leq 10^50p,vi1050 \leq p, v_i \leq 10^51xn1 \leq x \leq n

输出格式

对于 op=2op = 2 时,输出一个整数表示所有元素的异或和。

输入数据 1

5 5
1 1 1 1 1
2
1
2
0 1 3
2

输出数据 1

1
2
3