CF2218E The 67th XOR Problem
题目描述
PMOI 比赛其实并没有那么糟糕 —— 坊间都说题目质量不错,甚至(老天保佑)还挺有意思的!但让 Macaque 沮丧的是,三位不守规矩的选手(Cloud、ChatGBT 和 Grook)仗着自己对 OEIS 过目不忘开始作弊。真是一群无赖!情急之下,Macaque 必须赶紧想出一道这三个人没法靠作弊解决的题目。而你,从他的同伴被贬为可怜的仆从,被拉来参与验题。
给定一个初始包含 $n$ 个非负整数的数组 $a$。
你需要恰好执行 $n−1$ 次如下操作:
1. 选择数组的一个下标 $i$($1 \le i \le |a|$,$|a|$ 为当前数组长度),记 $x = a_i$。
2. 对数组中所有下标 $j$($1 \le j \le |a|$),令 $a_j = a_j \oplus x$($\oplus$ 为按位异或)。
3. 从数组中删除 $a_i$。
可以证明,执行 $n−1$ 次操作后,数组中恰好只剩下一个元素。你的任务是:以最优方式选择操作顺序,使得最后剩下的元素尽可能大,并求出这个最大值。
输入格式
每个测试点包含多组测试数据。
第一行一个整数 $t(1 \le t \le 100)$,表示测试数据组数。
每组数据格式如下:
第一行一个整数 $n(2 \le n \le 3105)$,表示数组初始长度。
第二行 $n$ 个整数 $a_1,a_2,\ldots,a_n(0 \le a_i \le 10^9)$,表示数组元素。
保证所有测试数据的 $n$ 之和不超过 $3105$。
输出格式
对于每组数据,输出一行一个整数,表示最终剩余元素的最大可能值。
说明/提示
In the second test case, the array is $ [1, 2, 3] $ . One optimal sequence of operations is:
1. Select the element $ 3 $ . Remove it. The remaining elements become $ [1 \oplus 3, 2 \oplus 3] = [2, 1] $ .
2. Select the element $ 2 $ . Remove it. The remaining element becomes $ [1 \oplus 2] = [3] $ .
The final value is $ 3 $ .