#P1002. 找子序列

找子序列

题目描述

Dave 有一个长度为 nn 的非负整数序列 a1na_{1\sim n} 和一个非负整数 mm

他希望知道是否有一个 aa 的非空子序列,使得子序列中所有元素的按位与(bitwise AND)结果为 mm

换言之,他想知道是否存在一个下标序列 i1ki_{1\sim k}k1k\ge 1),满足 1i1<i2<<ikn1\leq i_1<i_2<\cdots<i_k\leq n,且 ai1&ai2&&aik=ma_{i_1}\And a_{i_2}\And\cdots\And a_{i_k}=m

输入格式

第一行一个整数 TT 表示数据组数。对于每组数据:

第一行两个整数 n,mn,m

第二行 nn 个非负整数 a1na_{1\sim n}

输出格式

对于每组数据,如果存在这样的非空子序列,输出一行 Yes,否则输出一行 No

4
5 6
0 0 0 2 2
5 21
29 29 29 29 31
5 11
27 27 31 27 27
5 9
13 15 27 11 27
No
No
No
Yes

样例解释 1

在第四组数据中,整个序列即为所求子序列。

数据范围

对于 30%30\% 的数据,1n201\leq \sum n\leq 200ai,m<320\leq a_i,m<32

对于 60%60\% 的数据,1n1031\leq \sum n\leq 10^30ai,m<2100\leq a_i,m<2^{10}

对于 100%100\% 的数据,1T1051\leq T\leq 10^51n5×1051\leq \sum n\leq 5\times 10^50ai,m<2300\leq a_i,m<2^{30}