#include<iostream>
using namespace std;
int n,m,a[105][105],f[105][105],mx,x,y,ans,d1[]={-1,0,0,1},d2[]={0,-1,1,0};
bool check(int a1,int b1,int a2,int b2){
if(a[a1][b1]<a[a2][b2])return false;
if(a2>n||a2<1||b2>m||b2<1)return false;
return true;
}
int dfs(int a,int b){
if(f[a][b])return f[a][b];
f[a][b]=1;
for(int i=0;i<4;i++){
int nx=x+d1[i],ny=y+d2[i];
if(check(a,b,nx,ny)){
dfs(nx,ny);
f[a][b]=max(f[a][b],f[nx][ny]+1);
}
}
return f[a][b];
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;i<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans=max(ans,dfs(i,j));
}
}
cout<<ans;
}
洛谷P1434,请问这个为什么RE?