关闭

[codevs1159]最大全0子矩阵(极大子矩阵)

175人阅读 评论(0) 收藏 举报
分类:

题目:

我是超链接

题解:

分析极大子矩阵
O(n2) 并不大啊,运用第二种方法吧
可以发现讲解里面只存在i-1和i两种关于i的转移,我们选择滚动数组

h[j]表示第j列在当前状况下的悬线长度
l[j]表示第j列上的这条悬线尽力向左扩展的坐标
r[j]表示第j列上的这条悬线尽力向右扩展的坐标

代码:

#include <cstdio>
#include <iostream>
#define N 2005
using namespace std;
int a[N][N],h[N],l[N],r[N],ans;
int main()
{
    int n,i,j;
    scanf("%d",&n);
    for (i=1;i<=n;i++) 
      for (j=1;j<=n;j++)
        scanf("%d",&a[i][j]);
    for (i=1;i<=n;i++) h[i]=0,l[i]=1,r[i]=n;
    int la,ra;
    for (i=1;i<=n;i++)
    {
        la=0,ra=n+1;
        for (j=1;j<=n;j++)
          if (a[i][j]) h[j]=0,la=j,l[j]=1;
          else h[j]++,l[j]=max(l[j],la+1);

        for (j=n;j>=1;j--)
          if (a[i][j]) ra=j,r[j]=n;
          else r[j]=min(r[j],ra-1),ans=max(ans,(r[j]-l[j]+1)*h[j]);
    }
    printf("%d",ans);
}
1
0
查看评论

求最大全1子矩阵的一些探讨

最近烦恼了一阵关于最大全1子矩阵的问题。流行的解法似乎是把0设为大负数然后就可以用求最大和子矩阵的算法了。 ……不过总感觉有很大优化改进的余地,尚在思考中……   anyway,回到最大全1子矩阵。自己想了另一个算法: 比如对于矩阵: 0 1 1 0 0 0 1 0 1 1 ...
  • festony
  • festony
  • 2013-01-31 09:22
  • 1837

最大全0子矩阵问题

题意:给定一个01矩阵,求: 1.最大全0正方形面积 2.最大全0子矩阵面积 -----------------------------------------我是分割线----------------------------------------- 对于第一问,我们有O(nm)的动态规划解法: ...
  • Flere825
  • Flere825
  • 2017-01-18 23:29
  • 332

【codevs1159】最大全0子矩阵

悬线法模板题,见论文
  • zhaoyh2000
  • zhaoyh2000
  • 2017-01-15 14:26
  • 130

[codevs1159]最大全0子矩阵

人生如痴人说梦,充满着喧哗与躁动,却没有任何意义。
  • Clove_unique
  • Clove_unique
  • 2016-01-17 16:17
  • 757

cv1159 最大全0子矩阵(极大子矩阵)

题目描述 Description 在一个01方阵中找出其中最大的全0子矩阵,所谓最大是指0的个数最多。输入描述 Input Description 输入文件第一行为整数N,其中1<=N<=2000,为方阵的大小,紧接着N行每行均有N个0或1,相邻两数间严格用一个空格隔开。输出描述 O...
  • wu_tongtong
  • wu_tongtong
  • 2017-09-23 19:03
  • 77

POJ 3494 Largest Submatrix of All 1's(最大全1子矩阵面积、单调栈)

题目链接: POJ 3494 Largest Submatrix of All 1’s 题意: 给出一个n∗mn*m的01矩阵,求出最大全1子矩阵面积。 数据范围:n,m≤2000n,m\leq 2000 分析: 我们把每一行单独处理,把从这行向上连续延伸全为1的最大长度看成是矩形的高,...
  • Ramay7
  • Ramay7
  • 2016-07-25 23:53
  • 687

最大全1子矩阵

题目描述: 给出1个M*N的矩阵M1,里面的元素只有0或1,找出M1的一个子矩阵M2,M2中的元素只有1,并且M2的面积是最大的。输出M2的面积。 Input 第1行:2个数m,n中间用空格分隔(2 <= m,n <= 100) 第...
  • zhang20072844
  • zhang20072844
  • 2013-10-22 00:23
  • 4359

【最大子矩阵和】HDU1559-最大子矩阵

最大子矩阵 Time Limit: 30000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2895  ...
  • u013517797
  • u013517797
  • 2014-08-15 17:08
  • 6389

[CODEVS1159]最大全0子矩阵解题报告

题目描述 Description 在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O的个数最多。 输入描述 Input Description 输入文件第一行为整数N,其中1 输出描述 Output Descrip...
  • TA201314
  • TA201314
  • 2015-04-21 21:28
  • 769

【codevs1159】最大全0子矩阵(悬线法)

悬线法
  • sdfzchy
  • sdfzchy
  • 2017-08-21 18:51
  • 115
    个人资料
    • 访问:63741次
    • 积分:5857
    • 等级:
    • 排名:第5302名
    • 原创:500篇
    • 转载:5篇
    • 译文:0篇
    • 评论:10条
    最新评论