「XSOI-R1」区间操作
题目背景
小 A 喜欢区间操作问题。
题目描述
小 A 给你了一个长度为 $n$ 的序列 $a$,并给你了 $q$ 组询问。
对于每组询问,小 A 会给你两个正整数 $l,r$,你需要求出 $(a_l) \oplus (a_l+a_{l+1}) \oplus (a_l+a_{l+1}+a_{l+2}) \oplus \dots \oplus (a_l + a_{l+1} + a_{l+2} + \dots + a_r)$ 的值。
其中 $\oplus$ 表示异或运算。
输入输出格式
输入格式
第一行两个正整数 $n,q$,
之后一行 $n$ 个整数 $a_i$,
之后 $q$ 行每行两个正整数 $l,r$。
输出格式
共 $q$ 行,
每行一个整数表示你的答案。
输入输出样例
输入样例 #1
6 1
1 1 4 5 1 4
1 6
输出样例 #1
18
输入样例 #2
7 10
1 9 1 9 8 1 0
1 2
1 3
1 4
1 5
1 6
1 7
2 6
3 5
4 7
2 7
输出样例 #2
11
0
20
8
21
8
23
25
24
11
说明
**【样例解释 #1】**
$1 \oplus (1 + 1) \oplus (1 + 1 + 4) \oplus (1 + 1 + 4 + 5) \oplus (1 + 1 + 4 + 5 + 1) \oplus (1 + 1 + 4 + 5 + 1 + 4) = 18$。
### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 0(13 pts):保证 $n,q \le 10^2$。
- Subtask 1(28 pts):保证 $n,q \le 10^4$。
- Subtask 2(19 pts):保证 $a_i \le 10^4$。
- Subtask 3(7 pts):保证 $n \le 10^2$。
- Subtask 4(17 pts):保证 $a_i$ 均为 $2$ 的非负整数次幂。
- Subtask 5(16 pts):无特殊限制。
对于所有测试数据,$1 \le l \le r \le n \le 10^4$,$1 \le q \le 10^6$,$0 \le a_i \le 10^{10}$。
upd(2024.7.3):添加一组 hack 数据,减少一组数据。