【小结】扫描线
一种处理策略。总的来讲就是用一条线按照一定顺序扫描,对于另一个维度用数据结构修改查询,从而解决问题的策略。
P10814 【模板】离线二维数点
最简单的一种扫描线。
首先对于 \([l,r]\) 容斥一下可以转化为求 \([1,pos]\) 中 \(\leq x\) 的个数。
这条线从 \(1\) 扫到 \(n\),然后树状数组维护,然后查询算贡献。做完了。
P5490 【模板】扫描线 & 矩形面积并
按 \(y\) 从下往上扫,然后就相当于在每一个 \(y\) 这里加入一条线段,面积之和就是每个 \(y\) 的被覆盖的长度之和。
考虑线段树不好维护 \(0\) 的个数。但是线段树可以维护最小值出现次数。
那么就用线段树维护最小值和最小值出现的次数。判断一个是不是 \(0\) 即可。
\(x\) 要离散化。有点难写。注意细节。

浙公网安备 33010602011771号