求独立矩形个数

求独立矩形个数

标题随便取的,没找到哪里有题目。

题意

给定 (n(1e5)) 个矩形,问有多少个矩形满足:和其他任意矩形都没有互相覆盖。

题解一

求出严格在矩形上方、下方、左边、右边的矩形,扣除严格在四个角的(之前重复算了)。

前者很好求,后者其实就是求区域内点的个数,扫描线即可解决。

题解二

计算内部格子的面积和(如果一个单位格子被覆盖了两次,这个格子面积就是2)。
如果面积和与矩形面积相等,那么这个矩形就是符合条件的。

首先考虑 (1*n) 的矩形怎么求面积和。我们考虑从左到右扫描,那么 (1*n) 的矩形面积和=左无穷到右边-左无穷到右边。
左无穷到某条边的面积和怎么求?(好麻烦不想写了)

表示出来发现是可以线段树维护区间修改、区间和查询的。询问需要离线做。

原文地址:https://www.cnblogs.com/wuyuanyuan/p/9129305.html