CF1696A NIT orz!

题目描述

NIT,这位聪明人,是新来的!成千上万的人排队向他致敬。为了让他的“致敬者”们娱乐一下,NIT 决定让他们解决以下与 $ \operatorname{or} z $ 有关的问题。你也能解决这个问题吗? 给定一个 $n$ 个整数的 $1$ 下标数组 $a$,以及一个整数 $z$。你可以进行如下操作任意次(可能为零次): - 选择一个正整数 $i$,满足 $1\le i\le n$。然后,同时将 $a_i$ 设为 $a_i\operatorname{or} z$,并将 $z$ 设为 $a_i\operatorname{and} z$。换句话说,设 $x$ 和 $y$ 分别为当前 $a_i$ 和 $z$ 的值。则将 $a_i$ 设为 $x\operatorname{or}y$,将 $z$ 设为 $x\operatorname{and}y$。 这里的 $ \operatorname{or} $ 和 $ \operatorname{and} $ 分别表示按位或和按位与操作。 请你求出,经过任意次操作后,数组 $a$ 中最大值的最大可能值。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。每组测试用例的描述如下。 每组测试用例的第一行包含两个整数 $n$ 和 $z$($1\le n\le 2000$,$0\le z

输出格式

对于每组测试用例,输出一个整数,表示该问题的答案。

说明/提示

在样例的第一个测试用例中,一种最优的操作序列如下: - 对 $i=1$ 进行操作。此时 $a_1$ 变为 $3\operatorname{or}3=3$,$z$ 变为 $3\operatorname{and}3=3$。 - 对 $i=2$ 进行操作。此时 $a_2$ 变为 $4\operatorname{or}3=7$,$z$ 变为 $4\operatorname{and}3=0$。 - 对 $i=1$ 进行操作。此时 $a_1$ 变为 $3\operatorname{or}0=3$,$z$ 变为 $3\operatorname{and}0=0$。 经过这些操作后,序列 $a$ 变为 $[3,7]$,其中最大值为 $7$。可以证明,$a$ 中的最大值不可能超过 $7$,所以答案是 $7$。 在样例的第四个测试用例中,一种最优的操作序列如下: - 对 $i=1$ 进行操作。此时 $a_1$ 变为 $7\operatorname{or}7=7$,$z$ 变为 $7\operatorname{and}7=7$。 - 对 $i=3$ 进行操作。此时 $a_3$ 变为 $30\operatorname{or}7=31$,$z$ 变为 $30\operatorname{and}7=6$。 - 对 $i=5$ 进行操作。此时 $a_5$ 变为 $27\operatorname{or}6=31$,$z$ 变为 $27\operatorname{and}6=2$。 由 ChatGPT 4.1 翻译