CF2268C KiaKio and Energy Intervals

题目描述

Kia 和 Kio 在古老数字王国的遗迹中的水晶终端里发现了一段会发光的数组 $a_1, a_2, \ldots, a_n$。 终端的工作方式如下:Kia 选择数组中的一个区间——即任意两个下标 $l$ 和 $r$,满足 $l < r$(所以区间至少包含两个元素)。然后 Kio 找出该区间中的能量最大值 $m = \max\left(a_l, a_{l+1}, \ldots, a_r\right)$,再用 $m$ 对该区间中的每个元素做按位与运算,最后这些结果两两异或(按位异或)融合成一个释放能量值: $$ (a_l\,\&\,m)\oplus(a_{l+1}\,\&\,m)\oplus\cdots\oplus(a_r\,\&\,m) $$ 现在,Kia 想让终端释放出最强的能量爆发。请你求出对于所有满足 $l < r$ 的区间,终端可能释放的最大能量是多少。 这里,$\&$ 表示[按位与](https://en.wikipedia.org/wiki/Bitwise_operation#AND)运算,$\oplus$ 表示[按位异或](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)运算。

输入格式

每个测试点包含多个测试用例。第一行是测试用例个数 $t$($1 \leq t \leq 10^4$)。接下来每组测试用例描述如下。 每个测试用例的第一行包含一个整数 $n$($2 \leq n \leq 2\cdot10^5$),表示数组长度。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i < 2^{18}$)。 保证所有测试用例的 $n$ 之和不超过 $2\cdot10^5$。

输出格式

对于每个测试用例,输出一个整数,即所有满足 $l < r$ 的区间中能产生的最大值 $$ (a_l\,\&\,m)\oplus(a_{l+1}\,\&\,m)\oplus\cdots\oplus(a_r\,\&\,m) $$

说明/提示

在第一个测试用例中,一个最优的区间是 $l=1$,$r=2$。该区间的最大元素是 $m=7$。 此时能量值为 $(1\,\&\,7)\oplus(7\,\&\,7) = 6$。 由 ChatGPT 5 翻译