CF706D Vasiliy's Multiset
题目描述
作者已经没有关于 Vasiliy 的新故事了,所以这里只给出一个正式的题目描述。
你将得到 $q$ 个操作和一个多重集 $A$,初始时 $A$ 只包含整数 $0$。操作分为三种类型:
1. "+ x" —— 将整数 $x$ 加入多重集 $A$。
2. "- x" —— 从多重集 $A$ 中删除一个 $x$,保证此时多重集 $A$ 至少有一个 $x$。
3. "? x" —— 给定整数 $x$,需要计算值 ,即 $x$ 和多重集 $A$ 中某个整数 $y$ 的按位异或(XOR)的最大值。
多重集是一种集合,允许存在相等的元素。
输入格式
输入的第一行包含一个整数 $q$($1\leq q\leq 200000$),表示 Vasiliy 需要执行的操作数。
接下来的 $q$ 行中,每行包含一个字符 "+"、"-" 或 "?" 以及一个整数 $x_i$($1\leq x_i\leq 10^9$)。保证一定存在至少一个第三类型的查询。
注意,多重集 $A$ 中整数 $0$ 始终存在。
输出格式
对于每个 "?" 类型的查询,输出一行,一个整数,表示 $x_i$ 与多重集 $A$ 中某个整数按位异或(XOR)的最大值。
说明/提示
前五次操作后,多重集 $A$ 包含整数 $0$、$8$、$9$、$11$、$6$ 和 $1$。
第六个查询的答案是整数 ,即下列整数中的最大值:、、、、。
由 ChatGPT 5 翻译