#include<bits/stdc++.h>
using namespace std;
const int N=110;
int ans;
int n,m;
int mp[N][N];
int dist[N][N];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
#define max(x,y) x>y?x:y
int dfs(int s1,int s2){
if(dist[s1][s2]) return dist[s1][s2];
dist[s1][s2]=1;
for(int i=0;i<4;i++){
int x=s1+dx[i],y=s2+dy[i];
if(x<1||x>n||y<1||y>m) continue;
if(mp[x][y]>=mp[s1][s2]) continue;
dfs(x,y);
dist[s1][s2]=max(dist[s1][s2],dist[x][y]+1);
}
return dist[s1][s2];
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans=max(ans,dfs(i,j));
}
}
cout<<ans<<endl;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交