CF2261G 1 2 3 and XOR, Where Did Everybody Go?
题目描述
给定一个包含 $n$ 个非负整数的序列 $a$。
对于一个包含 $k$ 个非负整数的序列 $b$,定义“点增操作”为如下操作:
- 选择一个下标 $i$($1 \le i \le k$),并对 $b_i$ 加上任意非负整数。
令 $f(b)$ 表示对 $b$ 恰好执行一次点增操作后,$b_1 \oplus b_2 \oplus \ldots \oplus b_k$ 的最小可能值。$^{\text{∗}}$
请计算以下和的值:
$$
\sum_{1 \le l \le r \le n}f([a_l,a_{l+1},\ldots,a_r])
$$
$^{\text{∗}}$ 这里,$\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。
输入格式
输入包含多个测试用例。第一行为测试用例个数 $t$($1 \le t \le 10^4$)。
接下来每个测试用例包含:
第一行为一个整数 $n$($1 \le n \le 4\cdot 10^5$)。
第二行为 $a_1,a_2,\ldots,a_n$($0 \le a_i < 2^{25}$)。
保证所有测试用例的 $n$ 之和不超过 $4\cdot 10^5$。
输出格式
对于每个测试用例,输出一行答案。
说明/提示
以第一个测试用例为例,考虑 $f([5,4,6,7,5])$。
例如,将 $b_2=4$ 增加 $1$ 后,$b$ 变为 $[5,5,6,7,5]$,此时 $5 \oplus 5 \oplus 6 \oplus 7 \oplus 5 = 4$。
可以证明,经过一次点增操作后,$b_1 \oplus b_2 \oplus b_3 \oplus b_4 \oplus b_5$ 不能小于 $4$。
所有子数组的最小值之和为 $43$。
由 ChatGPT 5 翻译