P5494 【模板】线段树分裂
题目描述
给出一个可重集 $a$(编号为 $1$),它支持以下操作:
`0 p x y`:将可重集 $p$ 中大于等于 $x$ 且小于等于 $y$ 的值移动到一个新的可重集中(新可重集编号为从 $2$ 开始的正整数,是上一次产生的新可重集的编号+1)。
`1 p t`:将可重集 $t$ 中的数放入可重集 $p$,且清空可重集 $t$(数据保证在此后的操作中不会出现可重集 $t$)。
`2 p x q`:在 $p$ 这个可重集中加入 $x$ 个数字 $q$。
`3 p x y`:查询可重集 $p$ 中大于等于 $x$ 且小于等于 $y$ 的值的个数。
`4 p k`:查询在 $p$ 这个可重集中第 $k$ 小的数,不存在时输出 `-1`。
输入格式
无
输出格式
无
说明/提示
对于 $30\%$ 的数据,$1\leq n \leq {10}^3$,$1 \le m \le {10}^3$;
对于 $100\%$ 的数据,$1 \le n \le 2 \times {10}^5$,$1 \le x, y, q \le m \le 2 \times {10}^5$。保证数据合法。
不开 `long long` 见祖宗!!
---
题面 by @[Limit](https://www.luogu.com.cn/user/86625)
std by @[Limit](https://www.luogu.com.cn/user/86625)(线段树分裂)
验题 by @[Froggy](https://www.luogu.com.cn/user/100285)(平衡树,不过合并的复杂度假掉了,倒数第二个测试点就是 hack 数据)
数据 by @[Froggy](https://www.luogu.com.cn/user/100285)