已结束 GESP巅峰赛#26

A5302 | 奇怪的数学

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

Alice 参加了一场奇怪的比赛。

比赛一开始,Alice 面前有一个包含 $n$ 个非负整数的数组 $A = [a_1,a_2,\dots,a_n]$。

接下来,Alice 可以 无限次 地执行以下两种操作中的任意一种:

或炼金术:从数组中选择两个(不一定不同的)数 $x, y$,将 $x \mid y$ (按位或)加入数组。

与炼金术:从数组中选择两个(不一定不同的)数 $x, y$,将 $x~ \&~ y$ (按位与)加入数组。

每次操作不会删除原有的数,只会把新生成的数加入数组中。由于可以无限次操作,数组中可以包含任意多的数字。

现在,比赛组织者给出 $q$ 次询问,每次询问一个整数 $t_i$,Alice 想知道是否存在一种操作序列,可以最终在数组中生成数字 $t_i$。

请你帮助 Alice 回答所有的询问。

输入格式

第一行包含两个整数 $n,q$,表示初始数组中数字的个数和询问的个数。

第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$。

接下来 $q$ 行,每行包含一个整数 $t_i$,表示一次询问。

输出格式

输出 $q$ 行,每行输出一个 "Yes" 或 "No",表示是否可以生成该数字。

输入输出样例

输入 #1
2 4
1 2
0
3
4
2
输出 #1
Yes
Yes
No
Yes
输入 #2
5 6
1 2 4 8 16
0
3
31
32
18
7
输出 #2
Yes
Yes
Yes
No
Yes
Yes
输入 #3
2 5
576460752303423488 1
576460752303423488
1
576460752303423489
288230376151711744
0
输出 #3
Yes
Yes
Yes
No
Yes
C++ 编辑器
输入
输出