80分,求助
查看原帖
80分,求助
649927
JERRYXY楼主2022/10/3 15:14
#include<bits/stdc++.h>
#define N 109
using namespace std;
int n,m,num[N][N];
int a,b,maxn,ans;
void dfs(int i,int j,int idx/*长度*/)
{
	int sum=num[i][j];
	/*搜素四周还有没有可以往下滑的*/
	if(num[i-1][j]<sum&&i!=1) dfs(i-1,j,idx+1);
	if(num[i+1][j]<sum) dfs(i+1,j,idx+1);
	if(num[i][j-1]<sum&&j!=1) dfs(i,j-1,idx+1);
	if(num[i][j+1]<sum) dfs(i,j+1,idx+1);
	/*取最大值*/
	ans=max(ans,idx);
};
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>num[i][j];
		} 
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			dfs(i,j,1); 
		} 
	}
	cout<<ans;
	return 0;
}
2022/10/3 15:14
加载中...