2 条题解

  • 0
    @ 2025-09-16 16:11:28

    离散+切割

    把所有Ai,Bi存储在cut[1]..cut[N+N]中;

    对cut[]由小到大排序,则cut[i]..cut[i+1]就是一条离散线段

    对于cut[i]..cut[i+1],在所有包含这条离散线段的矩形中找一个最高的

    最为离散矩形cut[i]..cut[i+1]的高度

    然后算出所有离散矩形的面积和即可!

  • 0
    @ 2022-05-27 10:28:42

    很经典的题,通解是用线段树搞,但是从cqz神犇那里学到一招,排序后用并查集做。

    考虑按照矩形的高度由高到低排序,则后面的矩形一定无法覆盖掉前面矩形的部分。

    那么我们设f[i]为覆盖了i坐标这点的所有矩形的右边界,则用并查集维护即可。

    但注意坐标范围极大,无法一个个扫描坐标计算,所以离散化一下再按照上述思路做。

  • 1

信息

ID
2218
难度
9
分类
数据结构 | 并查集线段树 点击显示
标签
递交数
1
已通过
1
通过率
100%
被复制
1
上传者