题意:给定一个R*C的矩阵,选择一个面积最小的子矩阵,使得其内部‘.’的个数>=k。

解题思路:这道题如果时普通的枚举,会要达到O(N^5)严重超时。这里可以采用高效的枚举方法——尺取法。

首先还是用一个sum[i][j]记录(1,1)到(i,j)所围成的矩阵里'.'的个数。

接下来是比较关键的,如何采用尺取法。

可以两层循环枚举第i列到第j列,最内层循环就是枚举行了,在最内层循环里,如果熟悉尺取法的话,会发现这是一个典型的尺取法模型。

这样可以做到O(N^3)复杂度。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 305;
const int inf = 0x7ffffff;
int n,m,k,map[maxn][maxn],sum[maxn][maxn];
char str[maxn];int main()
{while(scanf("%d%d%d",&n,&m,&k),n+m+k){for(int i = 1; i <= n; i++){scanf("%s",str+1);for(int j = 1; j <= m; j++){if(str[j] == '.')map[i][j] = 1;else map[i][j] = 0;sum[i][j] = sum[i][j-1] + map[i][j];}}for(int i = 2; i <= n; i++)for(int j = 1; j <= m; j++)sum[i][j] += sum[i-1][j];int ans = inf;for(int i = 1; i <= m; i++)for(int j = i; j <= m; j++){int p = 1;for(int t = 1; t <= n; t++){while(sum[t][j] - sum[t][i-1] - sum[p-1][j] + sum[p-1][i-1] >= k){ans = min(ans,(j - i + 1) * (t - p + 1));p++;}}}printf("%d\n",ans);}return 0;
}

hdu 1937(尺取法)相关推荐

  1. hdu 5178(尺取法)

    pairs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem De ...

  2. Codeforces 1548B Integers Have Friends 尺取法 Hdu 7073 Integers Have Friends 2.0 力能扛鼎随机算法

    文章目录 题意 题解 CF1548B 题解 Hdu 7073 CF1548B HDU7073 题意 定义数的好友组为一个集合SSS,取正整数m>1,∀x∈s,xmodmm>1,\foral ...

  3. hdu 5358(尺取法)

    解题思路:这题可以利用尺取法,不过需要两个指针.如果采用一个指针,会出现这种情况,由于是取对数,所以中间可能会有很多log2S(i,j)的值相等,如果只有一个指针,会使得一些区间没有被算进去.比如0, ...

  4. hdu 5672(尺取法)

    题意:有一个10<=长度<=1000000的字符串,仅由小写字母组成.求有多少子串,包含至少k(1<= k <= 26)个不同的字母. 解题思路:利用尺取法求符合条件的临界区间 ...

  5. 【HDU - 5672】String(尺取法)

    题干: There is a string SS.SS only contain lower case English character.(10≤length(S)≤1,000,000)(10≤le ...

  6. 解题报告 (十三) 尺取法

    文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...

  7. HDU5178 pairs【二分法】【尺取法】

    pairs  HDU - 5178 John has nn points on the X axis, and their coordinates are (x[i],0),(i=0,1,2,-,n− ...

  8. 尺取法 --算法竞赛专题解析(2)

    本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 2019.8 网购:京东 当当      作者签名书 如有建议, ...

  9. hdu6119 小小粉丝度度熊【尺取法(滑动窗口)】

    这是2017百度之星初赛二的赛题. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 代码思路: 排序后合并交叉区间 使用尺取法(滑动窗口法),每 ...

最新文章

  1. 深度学习奠基人特伦斯:美国学界已经找到了解释人工智能“黑盒子”的方法...
  2. VScode快速一键生成html、vue、jsx、ajax、sass、docker等代码片段
  3. InnerHTML、InnerText、outerHTML、outerText的区别
  4. 韩顺平循序渐进学java 第19讲 多维数组
  5. linux shell less 命令---转
  6. 2021-03-09 Matlab RBF神经网络及其实例
  7. 在Visual Studio 2005中安装Qt 4.3.2
  8. @SentinelResource注解实现热点限流
  9. linux ftp配置chroot,vsftp chroot 设置
  10. 例子---PHP与Form表单之三
  11. Android各版本代号、版本号、API/NDK级别、发布时间及市场份额
  12. android xml 指纹动画,Android 指纹识别(给应用添加指纹解锁)
  13. MATLAB----数据拟合
  14. 热门好用的空号检测API推荐
  15. NBNS扫描工具nbtscan-unixwiz
  16. Win7 64位操作系统连接HP 1010打印机完美解决方案
  17. 电脑ping,电脑ping怎么用|电脑ping怎么打开_PC6教学
  18. linux多线程之原子锁技术
  19. excel求四分位数(QUARTILE 函数)
  20. java graphics2d 画圆_java Graphics2D 画图

热门文章

  1. 神策智能推荐 | 运营后台,你的智能分发“万能助手”
  2. 周四话分析:数据驱动,如何塑造下一个“教育领头羊”?
  3. 神策数据产品演进及行业延展实践
  4. 你会怎样衡量你的产品? —— 一点产品数据分析的经验分享
  5. .net MVC(存储过程+SQLHelper)
  6. 通过javaMail API 发送邮件
  7. IOS多线程开发其实很简单
  8. 再见,2014;您好,2015!
  9. topics in innovation management
  10. 强弩之末,势不能穿鲁缟