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 }




  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/rax-/p/9933478.html
Copyright © 2011-2022 走看看