题解 AT abc308_g
题意
有 $m$ 个操作,分三个种类:
- 加入 $x$。
- 删除 $x$。
- 在现有的数中两个数的最小的异或值的。
分析
很明显,我们的难点在于计算,
我们可以得到这样的性质:
最小异或值,必然产生于两个相邻的数中。
证明:
设当前的数为 $x$,与其形成的最小异或值的值为 $z$,$z$ 与 $x$ 不相邻。
$x$ 与 $z$ 必然是从某个位置(二进制位上)(令其为 $id$ 位)开始不同,否则两个就是相同的数,也可以看做相邻。
继续分析,必然存在某个数在 $x$ 与 $z$ 的中间,令这个数为 $y$。
由于 $x$ 与 $z$ 是从 $id$ 位开始不同,所以他们的前几位必然都相同。
而 $y$ 作为两个数之间的数,前几位也与其相同。
由于 $y$ 的 $id$ 位必然为 $0$ 或 $1$,
因此 $y$ 的 $id$ 位必然与 $x$ 或 $z$ 相同,由此 $\min \left \{ y\oplus z,y\oplus x \right \} < x \oplus z$。
由此必然产生于两个相邻的数。

浙公网安备 33010602011771号