求助大佬,第一个案例W了
查看原帖
求助大佬,第一个案例W了
397926
愚末语tenseTL楼主2021/1/3 15:54
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int s[505][505];
ll dp[505][505];
ll n,m,sum=0;
ll dfs(int x,int y)
{
	int a=0,b=0,c=0,d=0;
	if(dp[x][y])return dp[x][y];
	if(x+1<=m)if(s[x+1][y]<s[x][y])a=dfs(x+1,y);
	if(x-1>=1)if(s[x-1][y]<s[x][y])b=dfs(x-1,y);
	if(y+1<=n)if(s[x][y+1]<s[x][y])c=dfs(x,y+1);
	if(y-1>=1)if(s[x][y-1]<s[x][y])d=dfs(x,y-1);
	return dp[x][y]=max(max(a,b),max(c,d))+1;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	{cin>>s[i][j];} 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			sum=max(dfs(i,j),sum);
		}
	}	
	cout<<sum<<endl; 
	return 0;
} 

我的思路和其他人的一致,但一直WA第一个case,找不出bug出来,因为没有测试案例,所以也不知道自己错在哪个点上。大佬帮我看看吧!

2021/1/3 15:54
加载中...