1.奶牛浴场
题意搬运:
John要在牛场钟建造一个大型浴场,但是这个大型浴场不能覆盖任何一个奶牛的产奶点,John的牛场和规划的浴场都是矩形,浴场要完全位于牛场之内,并且浴场要是一个矩形,要求所求浴场面积尽可能大
最大子矩形定义:在一个给定的矩形中有一些障碍点,要找出内部不包含任何障碍点的矩形
定义有效子矩形为内部不包含任何障碍点的矩形
定义极大子矩形为每条边都不能向外拓展的有效子矩形
定义最大子矩形为所有极大子矩形中面积最大的子矩形
在一个有障碍点的矩形中的最大子矩形一点是一个极大子矩形
算法思路:通过枚举所有的极大子矩形,找出最大子矩形
两个不同的算法
算法1: 算法2:
时间复杂度:O(S^2) 时间复杂度:O(NM)
空间复杂度:O(S) 空间复杂度O(S)
S为障碍点个数,NM为整个矩形
算法1:
从极大子矩形的性质入手.
一个有效子矩形是极大子矩形的条件是,轮廓覆盖了障碍点,或者子矩形轮廓与矩形轮廓重合
基本算法:
算法:枚举上下左右四个边界,然后判断组成的矩形是否是有效子矩形。
fu