#P10401. 「XSOI-R1」区间操作

「XSOI-R1」区间操作

题目背景

小 A 喜欢区间操作问题。

题目描述

小 A 给你了一个长度为 nn 的序列 aa,并给你了 qq 组询问。

对于每组询问,小 A 会给你两个正整数 l,rl,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,qn,q

之后一行 nn 个整数 aia_i

之后 qq 行每行两个正整数 l,rl,r

输出格式

qq 行,

每行一个整数表示你的答案。

6 1
1 1 4 5 1 4
1 6
18
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
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,q102n,q \le 10^2

  • Subtask 1(28 pts):保证 n,q104n,q \le 10^4

  • Subtask 2(19 pts):保证 ai104a_i \le 10^4

  • Subtask 3(7 pts):保证 n102n \le 10^2

  • Subtask 4(17 pts):保证 aia_i 均为 22 的非负整数次幂。

  • Subtask 5(16 pts):无特殊限制。

对于所有测试数据,1lrn1041 \le l \le r \le n \le 10^41q1061 \le q \le 10^60ai10100 \le a_i \le 10^{10}

upd(2024.7.3):添加一组 hack 数据,减少一组数据。