有哪位能帮忙看一下的说(P1434 滑雪)

P1434 [SHOI2002] 滑雪

XLao @ 2019-10-30 21:33:53

WA:1 TLE:2


#include<iostream>
using namespace std;
const int inf=2147483647;
int n,m;
int a[105][105],ans,cnt;
int dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
int dfs(int x,int y)
{
    int tmp=inf,f=0;
    int go1,go2;
    for(int i=1;i<=4;i++)
    {
        int tx=x+dx[i],ty=y+dy[i];
        if(a[x][y]>a[tx][ty])
            if(a[x][y]-a[tx][ty]<tmp)
                f=1,go1=tx,go2=ty,tmp=a[x][y]-a[tx][ty];
    }
    if(!f) return cnt;
    cnt++; dfs(go1,go2);
}
int main()
{
    cin>>n>>m;
    cnt=ans=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            a[i][0]=a[i][m+1]=a[0][j]=a[n+1][j]=inf;
            cin>>a[i][j];
        }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            ans=max(ans,dfs(i,j));
            cnt=1;
        }
    cout<<ans;
    return 0;
}

|