题目背景
小 A 喜欢区间操作问题。
题目描述
小 A 给你了一个长度为 n 的序列 a,并给你了 q 组询问。
对于每组询问,小 A 会给你两个正整数 l,r,你需要求出 (al)⊕(al+al+1)⊕(al+al+1+al+2)⊕⋯⊕(al+al+1+al+2+⋯+ar) 的值。
其中 ⊕ 表示异或运算。
输入格式
第一行两个正整数 n,q,
之后一行 n 个整数 ai,
之后 q 行每行两个正整数 l,r。
输出格式
共 q 行,
每行一个整数表示你的答案。
提示
【样例解释 #1】
1⊕(1+1)⊕(1+1+4)⊕(1+1+4+5)⊕(1+1+4+5+1)⊕(1+1+4+5+1+4)=18。
数据规模与约定
本题采用捆绑测试。
-
Subtask 0(13 pts):保证 n,q≤102。
-
Subtask 1(28 pts):保证 n,q≤104。
-
Subtask 2(19 pts):保证 ai≤104。
-
Subtask 3(7 pts):保证 n≤102。
-
Subtask 4(17 pts):保证 ai 均为 2 的非负整数次幂。
-
Subtask 5(16 pts):无特殊限制。
对于所有测试数据,1≤l≤r≤n≤104,1≤q≤106,0≤ai≤1010。
upd(2024.7.3):添加一组 hack 数据,减少一组数据。