#4785. Minimum Xor Pair Query

0

Minimum Xor Pair Query

Minimum Xor Pair Query

题目描述

黑板上可以写整数。最初,黑板上没有写任何整数。给定 QQ 个查询,按顺序处理它们。 查询有以下三种类型之一:

1x1 x :在黑板上写下一个 xx。

2x2 x :从黑板上擦去一个 xx。在给出该查询时,保证黑板上至少写有一个 xx。

33 :输出黑板上写着的两个整数的按位异或的最小可能值。在处理该查询时,保证黑板上至少写有两个整数。

什么是按位异或? 非负整数 $A$ 和 $B$ 的按位异或 $A \oplus B$ 定义如下。 当 $A \oplus B$ 以二进制表示时,第 $2^k$ 位($k \geq 0$)为 $1$ 当且仅当 $A$ 与 $B$ 的第 $2^k$ 位恰有一个为 $1$,否则为 $0$。 例如,$3 \oplus 5 = 6$(二进制:$011 \oplus 101 = 110$)。

输入格式

输入从标准输入按照以下格式给出: QQ query1\mathrm{query}_1 query2\mathrm{query}_2 ⋮\vdots queryQ\mathrm{query}_Q

在第 ii 个查询 queryi\mathrm{query}_i 中,先给出查询的类型 cic_i(为 11、22 或 33 之一)。 如果 ci=1c_i = 1 或 ci=2c_i = 2,还会给出一个整数 xx。 换句话说,每个查询为以下三种格式之一。 11 xx

22 xx

33

输出格式

输出 qq 行,其中 qq 是满足 ci=3c_i=3 的查询数量。 第 jj 行(1≤j≤q1\leq j\leq q)应包含对第 jj 个此类查询的答案。

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

提示

1≤Q≤3×1051\leq Q \leq 3\times 10^5 0\leq x < 2 ^{30} 当给出查询 22 时,黑板上至少写有一个 xx。 当给出查询 33 时,黑板上至少写有两个整数。 所有输入值均为整数。处理第 11 个查询后,黑板上写有一个 22。 处理第 22 个查询后,黑板上写有一个 22 和一个 1010。 在处理第 33 个查询时,黑板上两个整数的按位异或的最小可能值是 2⊕10=82\oplus 10=8。 处理第 44 个查询后,黑板上写有 22、33 和 1010。 在处理第 55 个查询时,黑板上两个整数的按位异或的最小可能值是 2⊕3=12\oplus 3=1。 处理第 66 个查询后,黑板上写有 33 和 1010。 在处理第 77 个查询时,黑板上两个整数的按位异或的最小可能值是 3⊕10=93\oplus 10=9。 处理第 88 个查询后,黑板上写有 33 和两个 1010。 在处理第 99 个查询时,黑板上两个整数的按位异或的最小可能值是 10⊕10=010\oplus 10=0.

标签: AtCoder|abc308G

来源

AtCoder|abc308G