P3863 序列

把操作离线下来。

把每个修改操作差分拆成两个操作,然后类似于扫描线,在位置序列上扫描,维护该位置上的历史数组,一共有 \(O(q)\) 次修改,\(O(q)\) 次查询。

每次操作形如给 \([pos,n] += v\),每次查询形如查询 \([1,pos]\)\(\geq v\) 的个数。

这个是典中典分块,显然可以做到修改 \(O(\sqrt{n} \log n)\),查询 \(O(\sqrt{n} \log n)\)

总复杂度 \(O(q \sqrt{n} \log n)\)

posted @ 2023-02-21 16:54  PYD1  阅读(23)  评论(0)    收藏  举报