P1387 最大正方形
Posted pangbi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1387 最大正方形相关的知识,希望对你有一定的参考价值。
题意:找出最大的一个正方形;
思路:很显然,我们需要进行状态转移的点肯定要保证当前位置的权值为1
所以,当我们在某个点进行转移的时候呢,只需要看3个点的情况,找出他们的最小值+1即可
哪三个呢? 左 上 左上这三个点
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e2+10; 4 int dp[maxn][maxn]; 5 int main() 6 { 7 int n,m; 8 scanf("%d%d",&n,&m); 9 int ans=0; 10 for(int i=1;i<=n;i++) 11 for(int j=1;j<=m;j++){ 12 int tmp; 13 scanf("%d",&tmp); 14 if(tmp==1){ 15 dp[i][j]=min(min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1; 16 ans=max(ans,dp[i][j]); 17 } 18 } 19 printf("%d ",ans); 20 }
以上是关于P1387 最大正方形的主要内容,如果未能解决你的问题,请参考以下文章