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 回答所有的询问。
比赛一开始,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$,表示一次询问。
第二行包含 $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
数据范围
* $1 \le n \le 2 \times 10^5$
* $0 \le a_i < 2^{60}$
* $1 \le q \le 2 \times 10^5$
* $0 \le t_i < 2^{60}$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?