#gSXYlydlt30x3504. 异或运算 XOR
异或运算 XOR
题目描述
给定你由 个整数构成的整数序列,你可以从中选取一些(至少一个)进行异或(xor)运算,从而得到很多不同的结果。
请问,所有能得到的不同的结果中第 小的结果是多少。
输入格式
第一行包含整数 ,表示共有 组测试数据。
对于每组测试数据,第一行包含整数 。
第二行包含 个整数(均在 至 之间),表示完整的整数序列。
第三行包含整数 ,表示询问的次数。
第四行包含 个整数 ,表示 个询问对应的 。
输出格式
对于每组测试数据,第一行输出 Case #C:,其中 为顺序编号(从 开始)。
接下来 行描述 次询问的结果,每行输出一个整数,表示第 次询问中第 小的结果。
如果能得到的不同结果的总数少于 ,则输出 。
样例
输入样例:
2
2
1 2
4
1 2 3 4
3
1 2 3
5
1 2 3 4 5
输出样例:
Case #1:
1
2
3
-1
Case #2:
0
1
2
3
-1
样例解释
第一个测试数据:,数字为 。
可能的异或结果:
- 选 :1
- 选 :2
- 选 :1 xor 2 = 3
共 3 个不同结果。从小到大排序:1, 2, 3。
询问 :
- → 1
- → 2
- → 3
- → -1(因为总共只有 3 个不同结果)
第二个测试数据:,数字为 。
可能的异或结果:
- 选 :1
- 选 :2
- 选 :3
- 选 :1 xor 2 = 3(重复)
- 选 :1 xor 3 = 2(重复)
- 选 :2 xor 3 = 1(重复)
- 选 :1 xor 2 xor 3 = 0
不同结果:0, 1, 2, 3 共 4 个。从小到大:0, 1, 2, 3。
询问 :
- → 0
- → 1
- → 2
- → 3
- → -1
数据范围
- (未明确上限)
- 整数取值范围
时空限制
- 时间限制:1 秒
- 空间限制:64 MB