AcWing 901. 滑雪
原题链接
简单
作者:
Drifter
,
2021-01-11 15:57:08
,
所有人可见
,
阅读 204
寒假打卡
1.11最好是
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=310;
int r,c;
int h[N][N];
int f[N][N];
int dx[4]={0,0,-1,1},dy[4]={-1,1,0,0};
int dfs(int x,int y)
{
if(f[x][y]!=-1) return f[x][y];
f[x][y]=1;
for(int i=0;i<4;i++)
{
int cur_x=x+dx[i],cur_y=y+dy[i];
if(cur_x>=1&&cur_x<=r&&cur_y>=1&&cur_y<=c&&h[x][y]>h[cur_x][cur_y])
f[x][y]=max(f[x][y],dfs(cur_x,cur_y)+1);
}
return f[x][y];
}//dfs
int main(void)
{
scanf("%d%d",&r,&c);
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
scanf("%d",&h[i][j]);
memset(f,-1,sizeof f);
int res=0;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
res=max(res,dfs(i,j));
printf("%d\n",res);
return 0;
}