题目描述
给定长度为 n 的非负整数序列 a1∼n,你需要将其分为非空的两个组 S1,S2,使得 f(S1)⊕f(S2) 最大,其中 f(S) 表示 S 中所有元素按位或得到的结果,⊕ 是按位异或运算。
注意对于 a 中的每个元素,其必须恰好被分进 S1,S2 中的一个。
输入格式
第一行一个整数 T,表示数据组数。对于每组数据:
第一行一个整数 n 表示序列长度。
第二行 n 个整数 a1∼n 表示序列。
输出格式
对于每组数据,输出一行一个整数表示最大的 f(S1)⊕f(S2) 的值。
3
4
1 3 7 15
4
1 1 2 2
2
3 4
14
3
7
数据范围
对于 30% 的数据,1≤T≤20,2≤n≤10,0≤ai<210。
对于 60% 的数据,1≤T≤20,2≤n≤1000,0≤ai<210。
对于 100% 的数据,1≤T≤104,n≥2,2≤∑n≤2×105,0≤ai<230。