逐层的找最大面积。

Largest Submatrix

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 967    Accepted Submission(s): 467

Problem Description
Now here is a matrix with letter 'a','b','c','w','x','y','z' and you can change 'w' to 'a' or 'b', change 'x' to 'b' or 'c', change 'y' to 'a' or 'c', and change 'z' to 'a', 'b' or 'c'. After you changed it, what's the largest submatrix with the same letters you can make?
Input
The input contains multiple test cases. Each test case begins with m and n (1 ≤ m, n ≤ 1000) on line. Then come the elements of a matrix in row-major order on m lines each with n letters. The input ends once EOF is met.
Output
For each test case, output one line containing the number of elements of the largest submatrix of all same letters.
Sample Input
2 4
abcw
wxyz
Sample Output
3
Source
2009 Multi-University Training Contest 7 - Host by FZU
Recommend
gaojie
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N=1005;
char a[N][N];
int high[N];
int C,R;
bool isH(char stc,char c)
{
if(stc=='a')
return c=='a'||c=='w'||c=='y'||c=='z';
if(stc=='b')
return c=='b'||c=='w'||c=='x'||c=='z';
if(stc=='c')
return c=='c'||c=='x'||c=='y'||c=='z';
return false;
}
int main()
{
while(scanf("%d%d",&R,&C)!=EOF)
{
for(int i=0;i<R;i++)
scanf("%s",a);
int ans=-1;
for(char stc='a';stc<='c';stc++)
{
memset(high,0,sizeof(high));
for(int i=0;i<R;i++)
{
for(int j=0;j<C;j++)
{
if(isH(stc,a[j]))
high[j]++;
else
high[j]=0;
}
for(int j=0;j<C;j++)
{
int cnt=1;
if(high[j]==0) continue;
for(int k=j-1;k>=0&&high[k]>=high[j];k--)
cnt++;
for(int k=j+1;k<C&&high[k]>=high[j];k++)
cnt++;
ans=max(ans,high[j]*cnt);
}
}
}
printf("%d\n",ans);
}
return 0;
}

转载于:https://www.cnblogs.com/CKboss/archive/2013/06/01/3351046.html

HDOJ 2870 Largest Submatrix相关推荐

  1. 笛卡尔树详解带建树模板及例题运用(Largest Submatrix of All 1’s,洗车 Myjnie,Removing Blocks,SPOJ PERIODNI)

    文章目录 笛卡尔树 介绍 例题 Largest Submatrix of All 1's 应用 「POI2015」洗车 Myjnie [AGC028B] Removing Blocks SPOJ PE ...

  2. 【POJ - 3494】Largest Submatrix of All 1’s(加一点思维后化成 单调栈)

    题干: Given a m-by-n (0,1)-matrix, of all its submatrices of all 1's which is the largest? By largest  ...

  3. LeetCode 第 224 场周赛 5655. Largest Submatrix With Rearrangements【动态规划】⭐⭐⭐⭐⭐

    文章目录 题目描述 知识点 我的实现 码前思考 代码实现 时空复杂度分析 码后反思 参考文档 题目描述 知识点 动态规划 我的实现 码前思考 这道题目的motivation跟LeetCode 85非常 ...

  4. HDOJ 动态规划总结

    DP是难点,供自已以后系统学习. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大 ...

  5. HDU OJ 动态规划46题解析

    Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955  背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢 ...

  6. HDU中一些DP的题目分类

    DP是难点,供自已以后系统学习. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包;第一次做的时候把概率当做 ...

  7. 动态规划题集(转载)

    本内容为转载,原作者不知,如侵权即删. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包 ...

  8. hdu 动态规划题集

    原文链接:http://blog.sina.com.cn/s/blog_6cf509db0100sptt.html点击打开链接 1.Robberies 连接 :http://acm.hdu.edu.c ...

  9. HDU-动态规划题集【转】

    DP是难点,供自已以后系统学习. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包;第一次做的时候把概率当做 ...

  10. 有趣的动态规划题目(一)

    文章目录 [HDOJ 2084.数塔] [HDOJ 1176.免费馅饼] [HDOJ 1864.最大报销额] [HDOJ 1003.Max Sum] [HDOJ 1506.Largest Rectan ...

最新文章

  1. 学霸现身!博士生发18篇SCI,4篇CNS子刊,开学典礼上全场震撼
  2. 具有不同字体的列表框
  3. java scriptrunner_ScriptRunner.java
  4. Java设计模式(学习整理)---策略模式
  5. 数据结构讲义代码堆和栈、多线程、多进程、网络编程
  6. 采用jqueryUI创建日期选择器
  7. 解决TeamViewer的“现在无法捕捉画面。可能由于快速切换或者远程桌面断开或者最小化”问题...
  8. 【luogu T34117 打油门】 题解
  9. WinHex的使用指南(图文详细版)
  10. Windows查看Java内存使用情况
  11. 【微信文章封面】微信分别设置封面图和分享图的技巧
  12. 毕业实习大作业(Android-Spring Boot-MySQL 前后端分离项目 快速上手实例)
  13. C语言 输入一个正整数,判断它是素数还是合数
  14. 1131 拯救大兵瑞恩(单源最短路径扩展-拆点(dp))
  15. 数学图形之莫比乌斯带(mobius)
  16. 常用系统变量 SY-*
  17. MUR1660AC-ASEMI高压大电流快恢复二极管
  18. path development介绍
  19. python如何输入一个矩阵_python怎么输入矩阵
  20. 车牌识别系统四:Pyqt5编写简易车牌识别界面

热门文章

  1. mac搜索文件什么都没有,是为什么
  2. 分享C#实现XML和实体序列化和反序列化的代码
  3. VC++6.0环境下调试c语言代码的方法和步骤_附图
  4. 图片裁剪上传插件——jquery.photoClip.js
  5. 拿到一份陌生数据我们应该怎么办
  6. CSS-----盒子模型
  7. Bash脚本15分钟进阶教程-转
  8. windows命令查看端口占用情况
  9. 把txt作为数据源绑定到GridView中
  10. windows下 Mysql 错误1067 Can't open and lock privilege tables: Table 'mysql.user' doesn't exist