#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 个询问。每个询问给出两个整数 LLRR,要求 Ran Zha Zha 做以下事情:首先找出 [L,R][L, R] 的所有子区间,然后计算这些子区间的异或值之和。例如:

A={1,2,3}A = \{1, 2, 3\}L=1L = 1R=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 (1T101 \le T \le 10),表示测试数据的组数。

对于每组测试数据:

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

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

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

输出格式

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

1
3 1
1 2 3
1 3
10

提示

翻译由 DeepSeek V4 Pro 完成