传送门 至少BZOJ过了,其他的直接弃. 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 最外层套一颗线段树,用来表示区间,线段树下面套个splay用来维护当前线段树节点的区间. 对于第二问可以二分,看看哪个数的排名为 k. ——代码 #include <iostre…