#P17152. [ICPC 2017 Xi'an R] Sum of xor sum

    ID: 19430 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>2017前缀和位运算ICPC西安

[ICPC 2017 Xi'an R] Sum of xor sum

题目描述

Song Zha Zha 有一个下标从 11 开始的数组 AA。Li Zha Zha 有 QQ 个询问。每个询问给出两个整数 LL、RR,要求 Ran Zha Zha 做以下事情:首先找出 [L,R][L, R] 的所有子区间,然后计算这些子区间的异或值之和。例如:

A={1,2,3}A = \{1, 2, 3\},L=1L = 1,R=3R = 3。

区间 [1,3][1, 3] 的所有子区间为 [1,1][1, 1]、[2,2][2, 2]、[3,3][3, 3]、[1,2][1, 2]、[2,3][2, 3]、[1,3][1, 3]。它们的异或值之和为 $1 + 2 + 3 + (1 \oplus 2) + (2 \oplus 3) + (1 \oplus 2 \oplus 3)$。

XOR 表示按位异或(C++ 或 Java 中的 ^ 运算符)。

输入格式

输入包含多组测试数据。

第一行包含一个整数 TT (1≤T≤101 \le T \le 10),表示测试数据的组数。

对于每组测试数据:

第一行包含两个整数 NN 和 QQ (1≤N,Q≤1000001 \le N, Q \le 100000),其中 NN 是数组 AA 的长度。

接下来一行包含 NN 个整数,表示 A[i]A[i] (1≤i≤N1 \le i \le N,0≤A[i]≤10000000 \le A[i] \le 1000000)。

随后 QQ 行,每行包含两个整数 LL 和 RR,表示一个询问 [L,R][L, R] (1≤L≤R≤N1 \le L \le R \le N)。

输出格式

对于每个询问,输出答案对 10000000071000000007 取模的结果。

1
3 1
1 2 3
1 3
10

提示

翻译由 DeepSeek V4 Pro 完成