题解
2024-01-26 19:31:30
发布于:浙江
11阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,mx;
int a[105][105];
bool vis[105][105];
int fx[] = {1,0,-1,0};
int fy[] = {0,1,0,-1};
void dfs(int x,int y,int step){
mx = max(mx,step);
vis[x][y] = 1;
for(int i=0;i<4;i++){
int nx = x + fx[i];
int ny = y + fy[i];
if(nx>n||nx<1||ny>m||ny<1||vis[nx][ny]) continue;
if(a[nx][ny]>a[x][y])dfs(nx,ny,step+1);
}
vis[x][y] = 0;
}
int main(){
cin >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin >> a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
dfs(i,j,1);
cout << mx;
return 0;
}
这里空空如也
有帮助,赞一个