最大子矩阵学习笔记

1.奶牛浴场

题意搬运:
John要在牛场钟建造一个大型浴场,但是这个大型浴场不能覆盖任何一个奶牛的产奶点,John的牛场和规划的浴场都是矩形,浴场要完全位于牛场之内,并且浴场要是一个矩形,要求所求浴场面积尽可能大

最大子矩形定义:在一个给定的矩形中有一些障碍点,要找出内部不包含任何障碍点的矩形

定义有效子矩形为内部不包含任何障碍点的矩形

定义极大子矩形为每条边都不能向外拓展的有效子矩形

定义最大子矩形为所有极大子矩形中面积最大的子矩形

在一个有障碍点的矩形中的最大子矩形一点是一个极大子矩形

算法思路:通过枚举所有的极大子矩形,找出最大子矩形

两个不同的算法

算法1:                                          算法2:

时间复杂度:O(S^2)                                     时间复杂度:O(NM)

空间复杂度:O(S)                                     空间复杂度O(S)

S为障碍点个数,NM为整个矩形

算法1:

从极大子矩形的性质入手.

一个有效子矩形是极大子矩形的条件是,轮廓覆盖了障碍点,或者子矩形轮廓与矩形轮廓重合

基本算法:

算法:枚举上下左右四个边界,然后判断组成的矩形是否是有效子矩形。

fu

转载于:https://www.cnblogs.com/xzx-1228/p/11585181.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值