码迷,mamicode.com
首页 > 其他好文 > 详细

[洛谷1387]最大正方形

时间:2015-10-24 11:36:04      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

 

题目描述

在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。

输入输出格式

输入格式:

输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m个数字,用空格隔开,0或1.

输出格式:

一个整数,最大正方形的边长

输入输出样例

输入样例#1:

4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1

输出样例#1:

2

思路

  DP,f[i,j]表示以i,j为最右边最下边点的正方形大小。

  f[i,j]:=min(min(f[i-1,j],f[i,j-1]),f[i-1,j-1])+1

技术分享
var a,f:array[0..1000,0..1000] of longint;  
    n,m,i,j,ans:longint;  
  
function max(x,y:longint):longint;  
begin  
    if x>y then exit(x) else exit(y);  
end;  
  
function min(x,y:longint):longint;  
begin  
    if x>y then exit(y) else exit(x);  
end;  
  
begin  
    fillchar(a,sizeof(a),0);  
    fillchar(f,sizeof(f),0);  
    readln(n,m);  
    for i:=1 to n do  
        for j:=1 to m do  
            read(a[i,j]);  
    for i:=1 to n do  
        for j:=1 to m do  
            if a[i,j]=1 then  
                f[i,j]:=min(min(f[i-1,j],f[i,j-1]),f[i-1,j-1])+1;  
    for i:=1 to n do  
        for j:=1 to m do  
            ans:=max(ans,f[i,j]);  
    writeln(ans);  
end.  
View Code

 

[洛谷1387]最大正方形

标签:

原文地址:http://www.cnblogs.com/yangqingli/p/4906420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!