题目链接:http://poj.org/problem?id=3494

题意:给出一个01的矩阵,找出一个面积最大的全1矩阵。

思路:用h[i][j]表示从位置(i,j)向上连续1的最大长度。之后枚举每一行。对于某行,对于该行的每列,预处理left[j]和right[j],left[j]表示j列向左可以到达的最左位置使得[left[j],j]的所有列的h值均大于等于h[i][j],right类似。之后枚举列,用(right[j]-left[j]+1)*h[i][j]更新答案。

int a[N][N],h[N][N];
int n,m;

int main()
{
    Rush(n)
    {
        RD(m);
        int i,j;
        FOR1(i,n) FOR1(j,m) RD(a[i][j]);
        FOR1(i,n) FOR1(j,m)
        {
            if(!a[i][j]) h[i][j]=0;
            else h[i][j]=h[i-1][j]+1;
        }
        int ans=0;
        int left[N],right[N];
        FOR1(i,n)
        {
            h[i][0]=h[i][m+1]=-1;
            FOR1(j,m) left[j]=right[j]=j;
            FOR1(j,m) 
            {
                while(h[i][j]<=h[i][left[j]-1]) left[j]=left[left[j]-1];
            }
            FORL1(j,m) 
            {
                while(h[i][j]<=h[i][right[j]+1]) right[j]=right[right[j]+1];
            }
            FOR1(j,m) upMax(ans,(right[j]-left[j]+1)*h[i][j]);
        }
        PR(ans);
    }
}

POJ 3494 Largest Submatrix of All 1’s(最大全1子矩阵)的更多相关文章

  1. 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 ...

  2. POJ - 3494 Largest Submatrix of All 1’s 单调栈求最大子矩阵

    Largest Submatrix of All 1’s Given a m-by-n (0,1)-matrix, of all its submatrices of all 1’s which is ...

  3. POJ 3494 Largest Submatrix of All 1’s

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

  4. POJ 3494 Largest Submatrix of All 1’s(最大子图形)

    [题目链接] http://poj.org/problem?id=3494 [题目大意] 在01矩阵中求最大全1子矩形 [题解] 在处理每个点的时候,继承上一个点等高度下的左右最大扩展, 计算在该层的 ...

  5. poj3494Largest Submatrix of All 1’s(最大全1子矩阵)

    题目链接:http://poj.org/problem?id=3494 题目大意: 出1个M*N的矩阵M1,里面的元素只有0或1,找出M1的一个子矩阵M2,M2中的元素只有1,并且M2的面积是最大的. ...

  6. [POJ2559&POJ3494] Largest Rectangle in a Histogram&Largest Submatrix of All 1’s 「单调栈」

    Largest Rectangle in a Histogram http://poj.org/problem?id=2559 题意:给出若干宽度相同的矩形的高度(条形统计图),求最大子矩形面积 解题 ...

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

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

  8. 第一周任务Largest Submatrix of All 1’s

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

  9. Largest Submatrix(动态规划)

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

随机推荐

  1. Java多线程——<八>多线程其他概念

    一.概述 到第八节,就把多线程基本的概念都说完了.把前面的所有文章加连接在此: Java多线程——<一>概述.定义任务 Java多线程——<二>将任务交给线程,线程声明及启动 ...

  2. winform 如何控制输入法

    在工作中遇到这样一个问题,在系统使用过程中,输入法会变灰导致无法使用输入法输入文字,就好像输入法被禁用了没有启用似的.对此,在这里做个备录 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享 ...

  3. Zend Studio 错误集锦[PHP]

    错误信息:Cannot create linked resource '/.org.eclipse.dltk.core.external.folders/.link6'.  The parent re ...

  4. sublime 3 注册码

    Sublime_Text_Build_3080_x64_Setup.e... 下载地址: http://download.csdn.net/detail/hyz301/8529945 注册码 Subl ...

  5. <string>和<string.h>的区别

    转自:http://blog.csdn.net/houjixin/article/details/8648969 在C++开发过程中经常会遇到两个比较容易混淆的头文件引用#include<str ...

  6. FullPage.js全屏滚动插件学习总结

    如今我们经常能见到全屏网站,尤其是国外网站.这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次.比如 iPhone 5C 的介绍页面(查看),QQ浏览器的官网站.如果 ...

  7. Git常用命令大全

    查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...

  8. Sqli-labs less 50

    Less-50 从本关开始我们开始进行order by stacked injection! 执行sql语句我们这里使用的是mysqli_multi_query()函数,而之前我们使用的是mysqli ...

  9. 编写更好的CSS

    编写好的CSS代码能提升页面的渲染速度.本质上,一条规则都没有引擎解析的最快.MDN上将CSS选择符归拆分成四个主要类别,如下所示,性能依次降低. ID 规则 Class 规则 标签规则 通用规则 对 ...

  10. App接口设计

    关于APP接口设计 http://blog.csdn.net/gebitan505/article/details/37924711/