CDQ 小记
2025-10-29

日常不理解算法本质


周末给 afewdgre 讲题,偶遇简单时间轴问题,拼尽全力勉强战胜

何为时间轴

  • 特点:单向。

    前面的修改会影响后面的查询;反过来,后面的修改不会影响前面的查询。

  • 在大部分 DS 题目中,顺序操作是满足这个条件的。考虑不存在明显操作时间轴的问题,通常处理方式是扫描线:即用坐标轴当时间轴,这样做的前提条件也是『前面的修改影响后面的查询,但后面的修改不影响前面的查询』。这里拿给 afewdgre 讲的矩形面积并举例。

    矩形面积并中,把一段 \(x\) 坐标上,每个 \(y\) 上矩形存在的状态转化成『某个时刻,一段 \(y\) 是否被覆盖』,矩形的增删则用差分的方式维护。


CDQ 分治

  • 在需求时间轴的需求上,额外要求:

    修改之间无依赖,或者说,单次修改对询问的影响是可求的。

  • 这样就可以分治。大部分分治的基本目标都是,使相同的计算不用被多次进行。

  • 每层 CDQ 会统计每个 \([l,mid]\) 的修改对 \([mid+1,r]\) 询问的影响。

好像讲完了?


言论