#P5494. 【模板】线段树分裂
【模板】线段树分裂
题目描述
给出一个可重集 (编号为 ),它支持以下操作:
0 p x y
:将可重集 中大于等于 且小于等于 的值移动到一个新的可重集中(新可重集编号为从 开始的正整数,是上一次产生的新可重集的编号+1)。
1 p t
:将可重集 中的数放入可重集 ,且清空可重集 (数据保证在此后的操作中不会出现可重集 )。
2 p x q
:在 这个可重集中加入 个数字 。
3 p x y
:查询可重集 中大于等于 且小于等于 的值的个数。
4 p k
:查询在 这个可重集中第 小的数,不存在时输出 -1
。
输入格式
第一行两个整数 ,表示可重集中的数在 的范围内,有 个操作。
接下来一行 个整数,表示 这些数在 中出现的次数 。
接下来的 行每行若干个整数,第一个数为操作的编号 (),以题目描述为准。
输出格式
依次输出每个查询操作的答案。
5 12
0 0 0 0 0
2 1 1 1
2 1 1 2
2 1 1 3
3 1 1 3
4 1 2
2 1 1 4
2 1 1 5
0 1 2 4
2 2 1 4
3 2 2 4
1 1 2
4 1 3
3
2
4
3
提示
对于 的数据,,;
对于 的数据,,。保证数据合法。
不开 long long
见祖宗!!
题面 by
https://www.luogu.com.cn/user/86625
std by
https://www.luogu.com.cn/user/86625
验题 by
https://www.luogu.com.cn/user/100285
合并的复杂度假掉了,倒数第二个测试点就是 hack 数据)
数据 by
https://www.luogu.com.cn/user/100285