DYhzx_QWQ @ 2022-07-13 20:20:08
#include<bits/stdc++.h>
using namespace std;
int a[101][101],n,f[101][101],ans=INT_MIN,m,fx[11]={0,1,0,-1,0},fy[11]={0,0,1,0,-1};
int check(int x,int y) {
if(x>0&&y>0&&x<=n&&y<=m) return 1;
return 0;
}
int dfs(int x,int y) {
if(f[x][y]!=1) return f[x][y];
for(int i=1;i<=4;i++) {
int xx=x+fx[i],yy=y+fy[i];
if(check(xx,yy)&&a[x][y]>a[xx][yy]) {
f[x][y]=max(f[x][y],dfs(xx,yy)+1);
}
}
return f[x][y];
}
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
cin>>a[i][j];
f[i][j]=1;
}
}
dfs(1,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;
}
by lao_li @ 2022-07-13 20:34:32
@Huangzixin20090220 可能的起点只有
by DYhzx_QWQ @ 2022-07-13 20:37:53
谢谢