#L0766. 增强平衡树
增强平衡树
题目背景
本题是基础平衡树的加强版本,扩大了数据规模并加入了强制在线机制。
输入输出格式与基础版本略有差异,但需要维护的操作集合完全相同。
题目描述
你需要动态维护一个可重集合 ,支持以下六种操作:
- 向 中插入一个数 。
- 从 中删除一个数 (若有多个相同元素,只删除一个)。
- 查询 中有多少个数严格小于 ,并将结果加一输出。
- 查询将 从小到大排列后,排名为第 位的数。
- 查询 中 的前驱(严格小于 的最大数)。
- 查询 中 的后继(严格大于 的最小数)。
本题强制在线,保证所有操作合法(操作 保证至少存在一个 ,操作 保证答案存在)。
输入格式
第一行两个正整数 ,分别表示初始集合的大小和操作次数。
第二行 个整数 ,表示初始集合中的元素。
接下来 行,每行两个整数 和 ,其中 为操作编号(), 为加密后的操作参数。
设 为上一次 号操作的答案(初始为 ),则真实参数 。
输出格式
输出一个整数,表示所有 号操作答案的异或和。
样例
6 7
1 1 4 5 1 4
2 1
1 9
4 1
5 8
3 13
6 7
1 46
提示
样例解释
加密前的完整操作序列如下:
6 7
1 1 4 5 1 4
2 1
1 9
4 1
5 9
3 8
6 1
1 0
执行第一个操作前,,完成后 。
执行第二个操作后 。
第三个操作查询 中第 小的数,答案为 。
第四个操作查询 的前驱,答案为 。
第五个操作查询严格小于 的数的个数加一,答案为 。
第六个操作查询 的后继,答案为 。
第七个操作完成后 。
输出 。
限制与约定
对于 的数据,,,。
本题数据量较大,请使用较快的读入方式。
难度
提高+/省选
通过率
—
尝试
0
已通过
0
- ID
- 1494
- 类型
- 传统题
- Time Limit
- 3000ms
- Memory Limit
- 512MiB
- 上传者