N_ty @ 2024-05-08 20:44:09
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int r,c,a=0;
int ax[110][110];
int dx[]={-1,0,1,0};
int dy[]={0,-1,0,1};
int sx,sy;
int dm=INT_MIN;
void dfs(int x,int y){
for(int i=0;i<4;i++){
sx=x+dx[i],sy=y+dy[i];
if(sx<1||sx>x||sy<1||sy>y) continue;
else if(ax[x][y]>ax[sx][sy]){
a++;
dfs(sx,sy);
}
}
if(a>dm){
dm=a;
a=0;
return;
}
}
int main()
{
cin>>r>>c;
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
cin>>ax[i][j];
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
dfs(i,j);
cout<<dm;
return 0;
}
by xjsmsms @ 2024-05-14 09:35:37
建议使用记忆化搜索,不然即使写对了也会TLE