A7393 | 0/1 Trie 模板
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小码君有一个数字集合,集合中一共有 $n$ 个非负整数。
接下来有 $q$ 次询问,每次给出一个非负整数 $x$。
对于每次询问,你需要从集合中选择一个数 $a_i$,使得:
$$ x \oplus a_i $$
尽可能大。
其中 $\oplus$ 表示按位异或运算。
请你输出每次询问能够得到的最大异或值。
接下来有 $q$ 次询问,每次给出一个非负整数 $x$。
对于每次询问,你需要从集合中选择一个数 $a_i$,使得:
$$ x \oplus a_i $$
尽可能大。
其中 $\oplus$ 表示按位异或运算。
请你输出每次询问能够得到的最大异或值。
输入格式
第一行输入两个整数 $n,q$,表示集合中数字的个数和询问次数。
第二行输入 $n$ 个非负整数 $a_1,a_2,\dots,a_n$。
接下来 $q$ 行,每行输入一个非负整数 $x$,表示一次询问。
第二行输入 $n$ 个非负整数 $a_1,a_2,\dots,a_n$。
接下来 $q$ 行,每行输入一个非负整数 $x$,表示一次询问。
输出格式
对于每次询问,输出一行一个整数,表示最大的异或值。
输入输出样例
输入 #1
5 4 1 2 3 10 15 0 5 8 7
输出 #1
15 15 11 13
## 样例解释 #1
对于询问 $x=0$:
选择 $15$,有:
$$ 0\oplus 15=15 $$
所以答案是 $15$。
对于询问 $x=5$:
选择 $10$,有:
$$ 5\oplus 10=15 $$
所以答案是 $15$。
对于询问 $x=8$:
选择 $3$,有:
$$ 8\oplus 3=11 $$
所以答案是 $11$。
对于询问 $x=7$:
选择 $10$,有:
$$ 7\oplus 10=13 $$
所以答案是 $13$。
## 数据范围
对于所有测试数据,满足:
- $1\le n,q\le 2\times 10^5$
- $0\le a_i,x<2^{30}$
对于询问 $x=0$:
选择 $15$,有:
$$ 0\oplus 15=15 $$
所以答案是 $15$。
对于询问 $x=5$:
选择 $10$,有:
$$ 5\oplus 10=15 $$
所以答案是 $15$。
对于询问 $x=8$:
选择 $3$,有:
$$ 8\oplus 3=11 $$
所以答案是 $11$。
对于询问 $x=7$:
选择 $10$,有:
$$ 7\oplus 10=13 $$
所以答案是 $13$。
## 数据范围
对于所有测试数据,满足:
- $1\le n,q\le 2\times 10^5$
- $0\le a_i,x<2^{30}$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?