#AT2627. G - Minimum Xor Pair Query
G - Minimum Xor Pair Query
G - 最小异或配对查询
得分:600 分
问题描述
有一个黑板,你可以在上面写整数。最开始,黑板上没有任何整数。给定 $Q$ 个查询,按顺序处理它们。
查询分为以下三种:
-
1 x
:在黑板上写下整数 $x$。 -
2 x
:从黑板上擦去一个 $x$。在给出这个查询时,保证黑板上至少有一个 $x$。 -
3
:输出黑板上任意两个整数的最小异或值。在处理这个查询时,保证黑板上至少有两个整数。
什么是异或运算?
异或运算是将两个相同长度的二进制数按位进行比较,若相同位置上的数字相等,则该位结果为0,否则为1。约束条件
- $1 \leq Q \leq 3 \times 10^5$
- $0 \leq x < 2^{30}$
- 当给出查询 2 时,黑板上至少有一个整数。
- 当给出查询 3 时,黑板上至少有两个整数。
- 所有输入都是整数。
输入
从标准输入中以以下格式给出输入:
对于第 $i$ 个查询,给出查询的类型 $c_i$(其中 $c_i$ 取值为 1、2 或 3)。
当 $c_i = 1$ 或 $c_i = 2$ 时,会附加给出一个整数 $x$。
```输出
输出 $q$ 行,其中 $q$ 是 $c_i = 3$ 的查询数。
第 $j$ 行($1 \leq j \leq q$)应该包含第 $j$ 次这样的查询的答案。
9
1 2
1 10
3
1 3
3
2 2
3
1 10
3
8
1
9
0
处理第一个查询之后,黑板上写着一个 $2$。
处理第二个查询之后,黑板上写着 $2$ 和 $10$。
处理第三个查询时,黑板上任意两个整数的最小异或值是 $2 \oplus 10 = 8$。
处理第四个查询之后,黑板上写着 $2$,$3$ 和 $10$。
处理第五个查询时,黑板上任意两个整数的最小异或值是 $2 \oplus 3 = 1$。
处理第六个查询之后,黑板上写着 $3$ 和 $10$。
处理第七个查询时,黑板上任意两个整数的最小异或值是 $3 \oplus 10 = 9$。
处理第八个查询之后,黑板上写着 $3$ 和两个 $10$。
处理第九个查询时,黑板上任意两个整数的最小异或值是 $10 \oplus 10 = 0$。
相关
在下列比赛中: