zoukankan      html  css  js  c++  java
  • POJ 3494 Largest Submatrix of All 1’s(最大子图形)

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

    【题目大意】

      在01矩阵中求最大全1子矩形

    【题解】

      在处理每个点的时候,继承上一个点等高度下的左右最大扩展,
      计算在该层的左右最大扩展,然后对于每个点更新答案即可。

    【代码】

    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int N=2010;
    int i,j,n,m,ans,l[N],r[N],h[N],lmax,rmax,a[N][N];
    int main(){
        while(~scanf("%d%d",&n,&m)){
            ans=0;
            memset(h,0,sizeof(h));
            for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);
            for(int i=1;i<=m;i++)l[i]=1,r[i]=m;
            for(int i=1;i<=n;i++){
                for(lmax=j=1;j<=m;j++)if(a[i][j]){
                    h[j]++;
                    if(lmax>l[j])l[j]=lmax;
                }else h[j]=0,l[j]=1,r[j]=m,lmax=j+1;
                for(rmax=j=m;j;j--)if(a[i][j]){
                    if(rmax<r[j])r[j]=rmax;
                    if((r[j]-l[j]+1)*h[j]>ans)ans=(r[j]-l[j]+1)*h[j];
                }else rmax=j-1;
            }printf("%d
    ",ans);
        }return 0;
    }
  • 相关阅读:
    log输出到日志和控制台
    CRM--搜索功能
    CRM--对数据进行排序
    CRM-注意的小事情
    CRM--modelform之instance
    CRM--保留原搜索条件
    crm系统
    Django多个app情况下静态文件的配置
    测试
    题库
  • 原文地址:https://www.cnblogs.com/forever97/p/poj3494.html
Copyright © 2011-2022 走看看