废话不说,直接上代码:
#include <bits/stdc++.h>
using namespace std;
int h[1010][1010],as[1010][1010];
int n,m,ans;
int dfs(int a,int b){
int fx[4]={-1,0,0,1};
int fy[4]={0,-1,1,0};
int x=0,y=0;
if(as[a][b]){
return as[a][b];
}
for(int i=0;i<=3;i++){
x=a+fx[i];
y=b+fy[i];
if(x>0&&x<=n&&y>0&&y<=m){
if(h[a][b]>h[a][b]){
as[a][b]=max(dfs(x,y)+1,as[a][b]);
}
}
}
return as[a][b];
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>h[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
as[i][j]=dfs(i,j);
if(as[i][j]>ans){
ans=as[i][j];
}
}
}
cout<<ans+1;
return 0;
}
那个挥之不去的1啊...... 输入啥,都是
1