悬线法
DZYO
Never stop
展开
-
解决一类极大子矩形问题(悬线法)
(以下内容参考王知昆国家集训队)最大子矩形问题在一个给定的矩形网格中有一些障碍点,要找出网格内部不包含任何障碍点,且边界与坐标轴平行的最大子矩形。 两种算法1.枚举左端点,不断限制上下长度。 2.悬线法。每个点都向其上方第一个障碍点连线,dp出左右最大距离。第一种算法复杂度为O(S2)O(S^2),S为点集大小。 第二种算法复杂度为O(n⋅m)O(n·m),即地图大小。 (1)奶牛浴场原创 2017-11-17 15:17:19 · 492 阅读 · 0 评论 -
BZOJ3885: [Usaco2015 Jan]Cow Rectangles(悬线法)
传送门 坐标系上给出n个点,分”H”和”G”,一个整点坐标上至多一个点。 现在求一个不包含”G”的包含尽量多”H”的子矩形,然后在保证”H”最多的情况下还要问最小面积。 输出”H”的最大数量,和保证”H”最多时的最小矩形面积。题解:悬线法。首先包含′H′'H'最多的矩阵是一个不含′G′'G'的极大子矩阵,找出所有这样的矩阵再二分四周缩小即可。#include<bits/stdc++.h>原创 2017-11-17 16:10:36 · 336 阅读 · 0 评论