#P1002. 找子序列

找子序列

题目描述

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

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

换言之,他想知道是否存在一个下标序列 i1∼ki_{1\sim k}(k≥1k\ge 1),满足 1≤i1<i2<⋯<ik≤n1\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 个非负整数 a1∼na_{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\% 的数据,1≤∑n≤201\leq \sum n\leq 20,0≤ai,m<320\leq a_i,m<32。

对于 60%60\% 的数据,1≤∑n≤1031\leq \sum n\leq 10^3,0≤ai,m<2100\leq a_i,m<2^{10}。

对于 100%100\% 的数据,1≤T≤1051\leq T\leq 10^5,1≤∑n≤5×1051\leq \sum n\leq 5\times 10^5,0≤ai,m<2300\leq a_i,m<2^{30}。