Description
有N个位置,M个操作。
操作有两种:
1:在位置a到位置b加入一个数c。
2:询问位置a到位置b,第c大的数是什么。
Input
第一行,两个整数$N$,$M$,意义如上。
接下来$M$行,每行形如:1 a b c或2 a b c。第一个数为1时执行第一个操作,为2时执行第2个操作。
Output
输出每个询问的结果
Solution
嵌套数据结构经典题目。
一开始想的是用区间线段树套权值线段树,发觉搞不了。
后来听大佬说后发现可以用权值树套区间数。然后用二分查找找到第c大数。
因为如果节点直接全开会爆空间而且有很多浪费,所以需要动态开空间。
Code
|
|