#7582. 分组问题(二)

分组问题(二)

题目描述

给定长度为 nn 的非负整数序列 a1na_{1\sim n},你需要将其分为非空的两个组 S1,S2S_1,S_2,使得 f(S1)f(S2)f(S_1)\oplus f(S_2) 最大,其中 f(S)f(S) 表示 SS 中所有元素按位或得到的结果,\oplus 是按位异或运算。

注意对于 aa 中的每个元素,其必须恰好被分进 S1,S2S_1,S_2 中的一个。

输入格式

第一行一个整数 TT,表示数据组数。对于每组数据:

第一行一个整数 nn 表示序列长度。

第二行 nn 个整数 a1na_{1\sim n} 表示序列。

输出格式

对于每组数据,输出一行一个整数表示最大的 f(S1)f(S2)f(S_1)\oplus f(S_2) 的值。

3
4
1 3 7 15
4
1 1 2 2
2
3 4
14
3
7

数据范围

对于 30%30\% 的数据,1T201\leq T\leq 202n102\leq n\leq 100ai<2100\leq a_i<2^{10}

对于 60%60\% 的数据,1T201\leq T\leq 202n10002\leq n\leq 10000ai<2100\leq a_i<2^{10}

对于 100%100\% 的数据,1T1041\leq T\leq 10^4n2n\ge 22n2×1052\leq \sum n\leq 2\times 10^50ai<2300\leq a_i<2^{30}