#ABC308G. 最小异或对查询

最小异或对查询

最小异或对查询

题目描述

有一块可以在上面写整数的黑板。最初,黑板上没有写任何整数。

给定 QQ 个查询,请按顺序处理它们。

查询有以下三种:

  • 1 x : 在黑板上写下 xx
  • 2 x : 从黑板上擦除一个 xx。给出该查询时,保证黑板上至少写有一个 xx
  • 3 : 输出黑板上写着的整数中,任意两个整数按位异或的最小可能值。处理该查询时,保证黑板上至少写有两个整数。

什么是按位异或?

非负整数 AABB 的按位异或 ABA \oplus B 定义如下。

ABA \oplus B 写成二进制时,第 2k2^k 位(k0k \geq 0)在 AABB 的第 2k2^k 位中恰好有一个为 11 时为 11,否则为 00

例如,35=63 \oplus 5 = 6(二进制:011101=110011 \oplus 101 = 110)。

输入格式

输入按以下格式从标准输入给出:

QQ
query1\mathrm{query}_1
query2\mathrm{query}_2
\vdots
queryQ\mathrm{query}_Q

在第 ii 个查询 queryi\mathrm{query}_i 中,首先给出查询种类 cic_i(为 112233 之一)。如果 ci=1c_i = 1ci=2c_i = 2,还会额外给出一个整数 xx

也就是说,每个查询是以下三种格式之一。

11 xx

22 xx

33

输出格式

qq 为满足 ci=3c_i=3 的查询数量,输出 qq 行。

jj 行(1jq1\leq j\leq q)输出第 jj 个这样的查询的答案。

样例

9
1 2
1 10
3
1 3
3
2 2
3
1 10
3
8
1
9
0

处理第 11 个查询后,黑板上写着 22

处理第 22 个查询后,黑板上写着 221010

处理第 33 个查询时,黑板上任意两个整数按位异或的最小可能值为 210=82 \oplus 10 = 8

处理第 44 个查询后,黑板上写着 22331010

处理第 55 个查询时,黑板上任意两个整数按位异或的最小可能值为 23=12 \oplus 3 = 1

处理第 66 个查询后,黑板上写着 331010

处理第 77 个查询时,黑板上任意两个整数按位异或的最小可能值为 310=93 \oplus 10 = 9

处理第 88 个查询后,黑板上写着 33 和两个 1010

处理第 99 个查询时,黑板上任意两个整数按位异或的最小可能值为 1010=010 \oplus 10 = 0

数据范围

  • 1Q3×1051 \le Q \le 3\times 10^5
  • 0x<2300 \le x \lt 2^{30}
  • 给出查询 2 时,黑板上至少写有一个 xx
  • 给出查询 3 时,黑板上至少写有两个整数
  • 输入中的所有值均为整数
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
2988
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签