编程题
### 问题描述 小然在设计一个新的数字系统,他有一个包含 $N$ 个非负整数的数组 $A$,保证 $A$ 中至少包含两个不同的元素。 他还有一个非负整数 $X$。 对于每一个 $Y (0 \leq Y \leq X)$,他会创建一个新的数组 $B$,其中 $B_i = A_i \,|\, Y$,这里 $|$ 表示按位或操作。 小然希望找到最大的 $Y (Y \leq X)$,使得数组 $B$ 中至少包含两个不同的元素。 ### 输入格式 输入的第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例由两行组成: - 第一行包含两个整数 $N$ 和 $X$,表示数组 $A$ 的长度和允许的最大 $Y$ 值。 - 第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示数组 $A$ 的元素。 ### 输出格式 对于每个测试用例,输出一行一个整数,表示满足条件的最大 $Y$ 值。 ### 样例输入 ```markdown 3 3 5 1 1 2 5 10 4 5 2 3 5 3 3 1 1 3 ``` ### 样例输出 ```markdown 5 10 1 ``` ### 说明 在第一个测试用例中,当 $Y = 5$ 时,$B = [1 | 5, 1 | 5, 2 | 5] = [5, 5, 7]$,包含了两个不同的元素。 ### 评测数据范围 $1 \leq T \leq 10^3$。 $2 \leq N \leq 10^5$。 $0 \leq A_i, X < 2^{30}$。 所有测试用例中 $N$ 的总和不超过 $2 \times 10^5$。
查看答案
赣ICP备20007335号-2