6

Week 1

发现之前遗漏(或忘记)的知识点有些多,于是这周好好补一下。

2025.6.3

扫描线

求多个矩形的面积并。

首先易得答案为 截线段长度×扫过的高度\sum 截线段长度 \times 扫过的高度

考虑把矩形的横边按照 yy 排序。

为了快速计算出截线段长度,可以给横边附上 111-1 的权值,记下边权值为 1-1 ,上半为 11 。这样按照 yy 往上扫时,就可以快速地将已经计算过的删掉。

考虑将每个矩形的边的端点先投影到 xx 轴上,对于每个被这些点分割的线段,使用线段树维护现在截线段包不包含这个。那么写一颗区间修改单点查询的线段树即可。