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 $ .