zoukankan      html  css  js  c++  java
  • [入门组模拟赛]最大正方形

    题目描述

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

    输入

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

    输出

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

    样例输入

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

    样例输出

    2

    提示

    #include<bits/stdc++.h>
    using namespace std;
    int n,a[101][101],f[101][101],ans;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                scanf("%d",&a[i][j]);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(a[i][j]==0) f[i][j]=0;
                else f[i][j]=min(f[i-1][j],min(f[i][j-1],f[i-1][j-1]))+1;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                ans=max(ans,f[i][j]);
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    AngularJS依赖注入
    transclude 嵌入
    收藏的文章
    mysql
    jquery的deferred对象
    restrict取值
    AngularJs碎片笔记
    js工具函数
    canvas解决画图模糊
    去体湿
  • 原文地址:https://www.cnblogs.com/LJA001162/p/13251555.html
Copyright © 2011-2022 走看看