题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4237 分治: 先把所有点按 y 排序,然后二分递归: 对于每个 mid ,计算经过它的矩形的个数,把上面的每个点当做右上角,考虑下面多少点可以作为左下角: 上面的限制只有前面的 y 大于等于自己的 y,所以维护递增的单调栈: 下面的限制是后面的 y 小于等于自己的 y,所以维护递减的单调栈: 还要注意 x 的限制,二分找到栈内满足条件的最前面的点,到栈顶的元素个数就是对答案的贡献. 代码如…