题目链接:
题意:
对一个multiset(集合中的元素可以重复的set)有三种操作——
+ x: 增加元素x
- x: 减少元素x
?x: 求multiset中与x抑或得到的数最大为多少
已知0总是存在于multiset中。
分析:
时限为4s。
1 ≤ xi ≤ 109,由于109≈(210)3≈230,103<210,也就是说x最多为30位
那么对数的每一位建立字典树,即最多为30层。
当要找与x抑或得到的结果最小的数时,只需尽可能找与x的每个数位相反的路径,
即可得到multiset中的那个数。
这样每个数都按照最大数可能的位数30来构建字典树,方便处理。
#include #include #include
View Code