50分,感觉没错啊,求大佬调题
查看原帖
50分,感觉没错啊,求大佬调题
702822
Colas_miao_楼主2023/2/16 12:41
#include<bits/stdc++.h>
using namespace std;
int f[100][100];
int a[100][100];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++) cin>>a[i][j];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]==0)
			{
				f[i][j]=0;
				continue;
			}
			if(i==1&&j==1) f[i][j]=1;
			else if(f[i-1][j]==f[i][j-1])
			{
				if(a[i-f[i-1][j]][i-f[i-1][j]]==0) f[i][j]=f[i-1][j];
				else f[i][j]= f[i-1][j]+1;
			}
			else f[i][j]=min(f[i-1][j],f[i][j-1])+1;
//			cout<<a[i][j]<<" ";//测试
		}
//		cout<<endl;//测试
	}
	
	int Max=0;
	for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) Max=max(Max,f[i][j]);
	cout<<Max;
    return 0;
}
2023/2/16 12:41
加载中...