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 翻译