题目 20030

异或查询

题号
20030
时间限制
1000 ms
内存限制
512 MB
标签
比赛
来源
暑假比赛 08-28 - T5

时间限制:1000ms

内存限制:512MB

问题描述

初始时给定一个长度为 nn 的正整数序列 aia_i​,序列下标为 [0,n1][0,n-1],现有一个二维数组 bb,执行以下函数

void init(){
    for(int i=0;i<n;i++) b[0][i]=a[i];
    for(int i=1;i<n;i++)
        for(int j=0;j<n-i;j++) b[i][j]=b[i-1][j]^b[i-1][j+1];
}

现给出 qq 次询问,每次询问给定非负整数 x,yx,y,保证有 0x+yn10 \leq x+y \leq n-1,试给出 b[x][y]b[x][y]​ 的权值大小。

提示:组合数 C_a^b \bmod 2=[a & b = b]

输入格式

第一行包含 22 个正整数 n,qn,q​。

第二行给定长度为 nn 的正整数序列 aa​。

之后 qq 行,每行给出 22 个参数 x,yx,y,表示一次询问。

输出格式

输出 qq 行,每行输出 11 个整数,表示最终答案。

样例输入1

4 4
9 5 9 2
1 2
0 0
0 2
3 0

样例输出1

11
9
9
7

样例解释

bb 序列的形态为

9 5 9 2
12 12 11
0 7
7

样例输入2

见下发文件,数据保证每组询问的 x,yx,y 为所有可能的询问中等概率生成的。

样例输出2

见下发文件。

评测数据规模

对于 2020% 的数据,1n50001 \leq n \leq 5000

对于 4040% 的数据,数据保证每组询问的 x,yx,y 为所有可能的询问中等概率生成的。

对于所有测评数据,1n,q105,0ai1091 \leq n,q \leq 10^5,0 \leq a_i \leq 10^9

<!-- roj:downloads:start -->

下发数据