题意:每次删除区间内的一个数导致这个区间不连续,让你求出连续区间的最大逆序对,因为这题是强制在线的,所以没办法莫队,而且卡常卡的比较斤也没办法分块,所以我们可以使用一个启发式分裂,每次分裂计算两段区间的逆序对然后插入一个multiset容器里面最后查询接着查询最大值,我每次选取比较小的一块区间计算我这个小区间有多少个逆序对,最后原本区间逆序对减去p对左区间和右区间的贡献加上比较小的区间和比较大的区间里面选两个数的逆序对数.剩下的就是单独左间的贡献加上单独右区间的贡献,那么你再计算比较小的区间的贡献,最后再减一减就是贡献,
每次选取比较小的区间用主席树求逆序对时间复杂度大概是O(nlog^2n),最后用一个v数组记录一下区间以这个点开头的逆序对是多少我们就可以做到O(1)查询某段区间的逆序对,删除的话是nlog^2
#include
#include
#include
#include
#include
#include
#include
#include
#include