zoukankan      html  css  js  c++  java
  • P1387 最大正方形 |动态规划

    题目描述

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

    输入格式

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

    输出格式

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


    这题方法很多,n三方很容易想,但是有一个n方的动态规划很值得学习

    #include<iostream>
    #include<cmath>
    using namespace std;
    int a[101][101],n,m,f[101][101],ans;
    int main()
    {
        cin>>n>>m;
        for (int i=1;i<=n;++i)
        for (int j=1;j<=m;++j)
        {
            cin>>a[i][j];
            if(a[i][j])f[i][j]=min(min(f[i][j-1],f[i-1][j]),f[i-1][j-1])+1;
            ans=max(ans,f[i][j]);
        }
        cout<<ans;
    }
    
    
  • 相关阅读:
    J2EE第四周
    J2EE 第三周
    jsf简单入门
    Applrt和Ajax
    hello.java分析
    filter用户例子
    分析LogFilter
    理解session
    关于XML
    企业级应用和互联网应用的区别
  • 原文地址:https://www.cnblogs.com/naruto-mzx/p/11846874.html
Copyright © 2011-2022 走看看