P1387最大の広場|ダイナミックプログラミング

タイトル説明

Nのいずれかで* Mマトリクスは0、出力側の長さが含まれていない正方形を見つけるために、最大でのみ0と1を含んでいます。

入力形式

第一行動ファイル入力二つの整数N、M(1 <= N、M <= 100)、スペース、0又は1で区切られたm個の番号の次のn行、。

出力フォーマット

整数、広場の最大の側


この問題は、多くの方法、それは三者の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;
}

おすすめ

転載: www.cnblogs.com/naruto-mzx/p/11846874.html