#1219. 最大化剩余元素
最大化剩余元素
题目描述
给定一个初始包含 个非负整数的数组 。
你将执行恰好 次以下操作:
- 从当前数组 中选择一个下标 (,其中 表示当前数组的长度),并令 。
- 将当前数组中所有的元素 ()赋值为 ,其中 表示按位异或运算。
- 将选中的元素 从数组中删除(此时被删除元素的值为 )。
可以证明,经过 次操作后,数组中将恰好剩下唯一一个元素。你的任务是找出,在采取最优操作顺序的情况下,这最后一个剩余元素可能达到的最大值。
输入格式
第一行包含一个整数 ()—— 测试用例的数量。
对于每个测试用例:
- 第一行包含一个整数 ()—— 数组初始的长度。
- 第二行包含 个整数 ()—— 数组初始的元素。
输出格式
对于每个测试用例,输出一行一个整数,表示经过最优操作后最后剩余元素的最大可能值。
样例输入 1
3
2
67 67
3
1 2 3
10
67 667 167 867 267 467 367 567 767 967
样例输出 1
0
3
1012
说明
样例解释
在第二个测试用例中,初始数组为 。一种最优的操作序列如下:
- 选择元素 (令 )。将所有元素异或 后删除原先的 。剩余的元素变为 。
- 选择元素 (令 )。将所有元素异或 后删除原先的 。剩余的元素变为 。 最终剩下的值为 。
数据范围
- 对于所有测试点,保证 。
- 对于每个测试用例,保证 。
- 对于每个测试用例,保证 。
- 保证同一测试点内所有测试用例的 之和不超过 。
- 保证所有的输入数值均为整数。