求助大佬qwq
#include<iostream>
using namespace std;
int n,m,map[105][105],f[105][105],ans;
int m1[4]={-1,0,0,1};
int m2[4]={0,-1,1,0};
void dfs(int x,int y,int s){
if(f[x][y]>=s) return ;
f[x][y]=s;
for(int i=0;i<4;i++){
int mx=x+m1[i],my=y+m2[i];
if(map[mx][my]>=map[x][y]) continue;
if(mx<1||mx>n||my<1||my>m) continue;
dfs(mx,my,s+1);
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>map[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(!f[i][j]) dfs(i,j,1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans=max(ans,f[i][j]);
cout<<ans;
return 0;
}