求助大佬,第一个案例W了

P1434 [SHOI2002] 滑雪

愚末语tenseTL @ 2021-01-03 15:54:29

#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出来,因为没有测试案例,所以也不知道自己错在哪个点上。大佬帮我看看吧!


|