这三道题的关系是这样的,1505是1506的加强版,2870又是1505的加强版

如果按照上面由简到易的顺序来做的话,还是很简单的

这道题的思想就是 枚举+DP

因为某些字符可以变值,所以我们枚举a, b, c三个矩阵

分别求出对应的h数组以及最大子矩阵,再在里面求出一个最大值即可。

 //#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = ;
char map[maxn][maxn];
int h[][maxn], l[][maxn], r[][maxn]; int main(void)
{
#ifdef LOCAL
freopen("2870in.txt", "r", stdin);
#endif int row, col;
while(scanf("%d%d", &row, &col) == )
{
int i, j, k, t;
for(i = ; i < row; ++i)
scanf("%s", map[i]);
memset(h, , sizeof(h));
int ans = ;
for(i = ; i < row; ++i)
{
for(j = ; j < col; ++j)
{
switch(map[i][j])
{ //处理h数组
case 'a':
++h[][j], h[][j] = h[][j] = ;
break;
case 'b':
++h[][j], h[][j] = h[][j] = ;
break;
case 'c':
++h[][j], h[][j] = h[][j] = ;
break;
case 'w':
++h[][j], ++h[][j], h[][j] = ;
break;
case 'x':
++h[][j], ++h[][j], h[][j] = ;
break;
case 'y':
++h[][j], ++h[][j], h[][j] = ;
break;
case 'z':
++h[][j]; ++h[][j], ++h[][j];
}
}
l[][] = l[][] = l[][] = ;
r[][col-] = r[][col-] = r[][col-] = col-;
for(j = ; j < col; ++j)
for(k = ; k < ; ++k)
{
t = j;
while(t > && h[k][j] <= h[k][t-])
t = l[k][t-];
l[k][j] = t;
} for(j = col-; j >= ; --j)
for(k = ; k < ; ++k)
{
t = j;
while(t < col- && h[k][j] <= h[k][t+])
t = r[k][t+];
r[k][j] = t;
} for(j = ; j < col; ++j)
for(k = ; k < ; ++k)
ans = max(ans, (r[k][j]-l[k][j]+)*h[k][j]);
}
printf("%d\n", ans);
}
return ;
}

代码君

HDU 2870 Largest Submatrix的更多相关文章

  1. HDU 2870 Largest Submatrix (单调栈)

    http://acm.hdu.edu.cn/showproblem.php? pid=2870 Largest Submatrix Time Limit: 2000/1000 MS (Java/Oth ...

  2. hdu 2870 Largest Submatrix(平面直方图的最大面积 变形)

    Problem Description Now here is a matrix with letter 'a','b','c','w','x','y','z' and you can change ...

  3. Largest Submatrix(动态规划)

    Largest Submatrix Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. POJ 3494 Largest Submatrix of All 1’s

    POJ 2796 Feel Good HDU 1506 Largest Rectangle in a Histogram 和这两题一样的方法. #include<cstdio> #incl ...

  5. POJ-3494 Largest Submatrix of All 1’s (单调栈)

    Largest Submatrix of All 1’s Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 8551   Ac ...

  6. 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 we m ...

  7. codeforces 407D Largest Submatrix 3

    codeforces 407D Largest Submatrix 3 题意 找出最大子矩阵,须满足矩阵内的元素互不相等. 题解 官方做法 http://codeforces.com/blog/ent ...

  8. 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 we m ...

  9. POJ 3494 Largest Submatrix of All 1’s 单调队列||单调栈

    POJ 3494 Largest Submatrix of All 1’s Description Given a m-by-n (0,1)-matrix, of all its submatrice ...

随机推荐

  1. 网格导入设置 Import settings for Meshes

    原地址:http://game.ceeger.com/Components/FBXImporter-Model.html The Import Settings for a model file wi ...

  2. 表单很多数据项录入的时候,提交controller发生异常,数据回显。

    1.添加的情况(Model传递Form Data) request.getSession().setAttribute("car", car); //抛出异常的时候,数据回显. 2 ...

  3. 深入JS第一天:原型和它的小伙伴们(一)

    我在这里不说定义,找点问题,再解决问题. 一.原型 Q1:这样做输出的结果是什么? jQuery= String; jQuery.prototype.say = function () { alert ...

  4. Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click ...

  5. LA 3211

    As you must have experienced, instead of landing immediately, an aircraft sometimes waits in a holdi ...

  6. C#中的可空类型

    public class Person { public DateTime birth; public DateTime? death; string name; public TimeSpan Ag ...

  7. Heroku 与 ASP.NET 5

    一. Heroku 简单来讲,Heroku是一个支持多种语言.极易部署.多价位可免费的 Pass 平台,通过 Buildpack 搭建语言运行环境, 默认内建的大部分是 Web 开发中较为常见的语言, ...

  8. 离开csdn来到blog园

    csdn里没有限制阅读访问的功能,所以我选择来到cnblog 但是不得不说,cnblog做的界面很丑,我个人很不喜欢,但是没办法

  9. Linux之proc详解

    1. /proc目录    Linux内核提供了一种通过/proc文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以 ...

  10. JavaWeb笔记——三大组件之过滤器

    过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的.  当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“ ...