80分,求助

P1434 [SHOI2002] 滑雪

JERRYXY @ 2022-10-03 15:14:16

#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;
}

|