题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=10^9 思路:一年前写过的第一道主席树,现在有了更深的理解 最朴素的想法是设t[i,j]为i时刻[1..j]的个数之和 询问时区间(x,y)时只需取出t[y]-t[x-1]这棵线段树,在其中二分查找即可 那么问题来了:这样的写法空间复杂度是O(n2)级别的,且每次更改只有logn个点会被更改 有很多一模一样的…