zoukankan      html  css  js  c++  java
  • 洛谷1387最大正方形

    题目描述

    在一个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题,转移方程见代码
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 using namespace std;
     6 int i,j,n,m,f[105][105] = {0},a[105][105],ans = 0;
     7 int main()
     8 {
     9     scanf("%d %d",&n,&m);
    10     for(i = 1;i <= n;i++)
    11     {
    12         for(j = 1;j <= m;j++)
    13         {
    14             scanf("%d",&a[i][j]);
    15             if(a[i][j] == 1)
    16             {
    17                 f[i][j] = min(f[i - 1][j],min(f[i][j - 1],f[i - 1][j - 1])) + 1;
    18             }
    19             ans = max(ans,f[i][j]);
    20         }
    21     }
    22     printf("%d",ans);
    23     return 0;
    24 }




  • 相关阅读:
    118/119. Pascal's Triangle/II
    160. Intersection of Two Linked Lists
    168. Excel Sheet Column Title
    167. Two Sum II
    172. Factorial Trailing Zeroes
    169. Majority Element
    189. Rotate Array
    202. Happy Number
    204. Count Primes
    MVC之Model元数据
  • 原文地址:https://www.cnblogs.com/rax-/p/9933478.html
Copyright © 2011-2022 走看看