题目描述
江桥有一个初始为空的可重数字集合 S 和一个长度为 n 的序列 a1,a2,…,an。现在他可以进行任意次以下操作,给 S 中加入一些元素,具体的,他可以任选 a 中的任意个(也可以不选,此时 and 视为 0)数字,将这些数字的 and(按位与)加入集合 S。
他可以做任意次上述操作,请问 S 的 mex 最大可以达到多少。
【名词解释】
and:即按位与(Bitwise AND),指对两个整数的二进制表示按位进行与运算。如果您需要更多位运算相关的知识,可以参考 OI-Wiki的相关章节。
mex:整数数组的 mex 定义为没有出现在数组中的最小非负整数。例如,mex(1,2,3)=0、mex(0,2,5)=1。
输入格式
每个测试文件均包含多组测试数据。第一行输入一个整数 T 代表数据组数,每组测试数据描述如下:
输入一行一个整数 n,表示序列的长度。
第二行 n 个整数 a1,a2,…,an,表示序列中的元素。
输出格式
对于每一组测试数据,新起一行输出一个整数,表示集合 S 的最大 mex。
2
6
1 6 4 3 1 3
3
3 3 3
5
1
样例解释
对于第一组测试数据,操作如下:
∙ 一个数字都不选,可以得到 0,S={0};
∙ 选择 1,可以得到 1,S={0,1};
∙ 再选择 6,3,可以得到 6and3=2,S={0,1,2};
∙ 再选择 3,可以得到 3,S={0,1,2,3};
∙ 再选择 4,可以得到 4,S={0,1,2,3,4}。
将以上数字加入集合 S,最终集合的 mex=5,可以证明这是最优的答案。
数据规模与约定
下发文件
下发文件对应子任务 3,5,7。
有合理的子任务依赖。
| 子任务编号 |
∑n≤ |
特殊性质 |
分值 |
| 1 |
20 |
|
10 |
| 2 |
103 |
T=1 |
| 3 |
|
| 4 |
105 |
T=1 |
| 5 |
|
| 6 |
106 |
T=1 |
20 |
| 7 |
|
30 |
对于 100% 的数据:保证 $1 \leq T \leq 10^5,1 \leq n,\sum n \leq 10^6,0 \leq a_i \leq n$。