专栏文章

题解:AT_abc389_f [ABC389F] Rated Range

AT_abc389_f题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqgruvd
此快照首次捕获于
2025/12/04 04:33
3 个月前
此快照最后确认于
2025/12/04 04:33
3 个月前
查看原文

AT_abc389_f [ABC389F] RG

前置

  1. 线段树 + 二分
  2. 平衡树

正文

方法一(线段树)

将所有询问离线下来并排序,记为数组 aa。可证得在操作中 aa 满足单调不降性。
证明:操作 [l,r][l,r] 只会对 [l,r][l,r] 范围内的 aia_i 加一,修改后最大只能到 r+1r + 1。若原本 ai>ra_i>r,那就一定满足 air+1a_i\ge r+1,一定排在修改为的后面;若原本 ai<la_i<l,那一定排在修改位的前面。因为原数组满足单调不降性,因此修改后也满足。
aa 放入线段树,线段树维护区间最小值,最大值,每次通过二分(因为单调不降)找到满足 laxrl\le a_x \le r 的所有 xx 并加一。时间复杂度 O(nlog2n)O(n\log^2 n)

方法二(平衡树)

用 FHQ_Treap 实现值分裂,将 [l,r][l,r] 的节点打上标记,在分裂和合并时下传标记。时间复杂度 O(nlogn)O(n\log n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...