http://www.lydsy.com/JudgeOnline/problem.php?id=3196 (题目链接) 题意 1.查询k在区间内的排名:2.查询区间内排名为k的值:3.修改某一位值上的数值:4.查询k在区间内的前驱(前驱定义为小于x,且最大的数):5.查询k在区间内的后继(后继定义为大于x,且最小的数) Solution 修改不好搞,主席树套树状数组空间炸,最好的选择→_→:线段树套treap. 对于操作2,我们二分找到一个排名大于$k$的最小的数,然后查询这个数的前驱即可. 细…