U131415 「模板」块状链表
题目背景
~~$vector$ 吊打平衡树~~
题目描述
你需要维护一个可重集,初始为空,支持以下操作:
1. 插入一个数 $x$
2. 删除一个数 $x$ (若有多个,只删除一个)
3. 查询第 $x$ 小的数
4. 查询比 $x$ 小的数的个数 $+1$
5. 查询比 $x$ 小的最大数
6. 查询比 $x$ 大的最小数
输入格式
**本题强制在线**
第一行,一个整数 $N$,表示操作次数
接下来 $N$ 行,每行两个整数 $opt,x'$,$opt$ 表示操作类型,设上一次询问的答案为 $ans$,$ans$ 初始为 $0$,则 $x' \ xor \ ans$ 为解密后的 $x$
输出格式
一个整数,表示所有询问答案的**异或**和
说明/提示
**请使用快速的输入输出方式,并注意常数优化**
对于 $\ \ 8\%\ \ $ 的数据,$1 \leqslant N \leqslant 10$
对于 $\ 20\%\ $ 的数据,$1 \leqslant N \leqslant 1000$
对于 $\ 80\%\ $ 的数据,$1 \leqslant N \leqslant 10^5$
对于 $100\%$ 的数据,$1 \leqslant N \leqslant 10^6$,$opt \in \{ 1,2,3,4,5,6 \}$,$1 \leqslant x \leqslant 10^9$
记 $n_i$ 为操作 $i$ 的次数,$n_1 \leqslant 3×10^5$,$n_2+n_4+n_5+n_6 \leqslant 10^5$
保证所有操作合法,即不会删除不存在的数,询问的答案存在,且存在询问操作
时空限制:$\textcolor{#FF00FF}{200}ms \ \ \textcolor{#FF00FF}{100}MB$
**$std$ 时间复杂度为 $O(\frac{n\sqrt{n}}{\omega})$**