CF1842B Tenzing and Books

题目描述

Tenzing 收到了他的粉丝们送来的 $3n$ 本书。这些书被分成 $3$ 堆,每堆有 $n$ 本书。每本书都有一个非负整数的难度值。 Tenzing 想要读一些(也可以不读)书。起初,他的知识值为 $0$。 读书的规则如下:Tenzing 每次可以选择一个非空的书堆,读掉堆顶的那本书,然后将其丢弃。如果当前知识值为 $u$,读了一本难度值为 $v$ 的书后,知识值会变为 $u|v$。这里 $|$ 表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。Tenzing 可以在任何时候停止读书。 Tenzing 最喜欢的数字是 $x$。你能帮他判断是否有可能让他的知识值变成 $x$ 吗?

输入格式

每组测试数据包含多组测试用例。输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每组测试用例的描述。 每组测试用例的第一行包含两个整数 $n$ 和 $x$($1 \leq n \leq 10^5$,$0 \leq x \leq 10^9$),分别表示每堆的书本数量和 Tenzing 最喜欢的数字。 第二行包含 $n$ 个整数 $a_1,a_2,\ldots,a_n$($0 \leq a_i \leq 10^9$),表示第一堆书从上到下的难度值。 第三行包含 $n$ 个整数 $b_1,b_2,\ldots,b_n$($0 \leq b_i \leq 10^9$),表示第二堆书从上到下的难度值。 第四行包含 $n$ 个整数 $c_1,c_2,\ldots,c_n$($0 \leq c_i \leq 10^9$),表示第三堆书从上到下的难度值。 保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每组测试用例,如果 Tenzing 能让自己的知识值变成 $x$,输出 "Yes";否则输出 "No"。 你可以用任意大小写输出答案。例如,"yEs"、"yes"、"Yes"、"YES" 都会被识别为正确答案。

说明/提示

对于第一个测试用例,Tenzing 可以依次读以下 $4$ 本书: - 读第一堆堆顶难度为 $1$ 的书,知识值变为 $0|1=1$。 - 读第三堆堆顶难度为 $1$ 的书,知识值变为 $1|1=1$。 - 读第一堆下一个难度为 $2$ 的书,知识值变为 $1|2=3$。 - 读第二堆堆顶难度为 $5$ 的书,知识值变为 $3|5=7$。 读完这些书后,Tenzing 的知识值为 $7$。 对于第三个测试用例,Tenzing 可以选择一开始就不读任何书,使得最终知识值为 $0$。 由 ChatGPT 4.1 翻译