目录
一:一维覆盖问题
问题描述:给定段区间,表示在数轴上的线段。现求线段覆盖的总长度。
洛谷P1496 火烧赤壁https://www.luogu.com.cn/problem/P1496
时间复杂度
- 对所有线的左端点进行排序(从小到大)
- 第一条线直接统计进入答案,那么我们就知道最左边的端点就是第一条线。
- 设置最远右端点为,初始化就是第一条线的右端点
- 从第二条线开始,我们考虑一下所有的情况:
- 1.现在读入的线的右端点比最远右端点()要大,说明要统计答案,加上这一段区间,摈弃给维护的值。也就是
if(a[i].se>r) { ans+=(a[i].se-max(r,a[i].fi)); r=a[i].se; }
- 2.
- 1.现在读入的线的右端点比最远右端点()要大,说明要统计答案,加上这一段区间,摈弃给维护的值。也就是
现在读入的线的右端点比最远右端点()要小。不需要统计答案,也不用更新
二:二维覆盖问题
问题描述:给定个矩形,求矩形覆盖的总面积。 洛谷P1884https://www.luogu.com.cn/problem/P1884
扫描线板子题/矩形切割(不会)
你问我扫描线是啥?我反手就是一个大佬视频
其实大佬视频里面已经有详细的讲解了
那我就不写了~