40pts求调,玄关
查看原帖
40pts求调,玄关
1002361
Foraver楼主2024/3/16 15:19
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,a[1005][1005],dp[1005][1005];
int dfs(int x,int y)
{
	if(dp[x][y]!=0)	return dp[x][y];
	dp[x][y]=1;
	if(x>1&&a[x][y]>a[x-1][y])return dp[x][y]=max(dp[x][y],dfs(x-1,y)+1);	
	if(x<n&&a[x][y]>a[x+1][y])return dp[x][y]=max(dp[x][y],dfs(x+1,y)+1);
	if(y>1&&a[x][y]>a[x][y-1])return dp[x][y]=max(dp[x][y],dfs(x,y-1)+1);
	if(y<m&&a[x][y]>a[x][y+1])return dp[x][y]=max(dp[x][y],dfs(x,y+1)+1);	
	return dp[x][y];
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			ans=max(dfs(i,j),ans);
		}
	}
	printf("%d",ans);
	return 0;
}
2024/3/16 15:19
加载中...