80分求助点1,6WA了

P1434 [SHOI2002] 滑雪

Apocalypsis @ 2018-02-23 10:07:38

#include<bits/stdc++.h>
using namespace std;
int ans,r,c,e,h[101][101],f[101][101];
int sear(int x,int y){
    if(f[x][y]) return f[x][y];
    f[x][y]=1;
    if(x>1&&h[x-1][y]<h[x][y]) f[x][y]=max(f[x][y],sear(x-1,y)+1);
    if(y>1&&h[x][y-1]<h[x][y]) f[x][y]=max(f[x][y],sear(x,y-1)+1);
    if(x<c&&h[x+1][y]<h[x][y]) f[x][y]=max(f[x][y],sear(x+1,y)+1);
    if(y<r&&h[x][y+1]<h[x][y]) f[x][y]=max(f[x][y],sear(x,y+1)+1);
    return f[x][y];
}
int main(){
    cin>>r>>c;
    for(int i=1;i<=r;i++)
        for(int j=1;j<=c;j++) cin>>h[i][j];
    for(int i=1;i<=r;i++)
        for(int j=1;j<=c;j++){
            if(!f[i][j]) sear(i,j);
            ans=max(ans,f[i][j]);
        }
    cout<<ans;
}

|