这题在线做法貌似很麻烦呢……
后来看题解发现了一种奇怪的做法:二分答案 + 线段树。
但是这里线段树可以用珂朵莉树替换,于是我写了珂朵莉树。
二分结果的值为 mid,然后把整个序列每个 ai,若 ai≤mid,使 ai←1,否则使 ai=0。
那么 0/1 序列的升序和降序用线段树就可以 logn 搞,计算区间内 1 的个数然后乱搞一下就好,
需要用到线段树区间覆盖,区间求和。
但是这一点我用了珂朵莉树。
判定的时候跑一遍所有的修改操作,最后检查 aq 是否还是 1。
代码:
1 |
|