123456yzx @ 2020-11-06 13:31:56
#include<bits/stdc++.h>
using namespace std;
int r,c,h[10000][200],maxn,l[10000][200],ax[4]={0,0,1,-1},ay[4]={1,-1,0,0},xx,yy;
int csb(int x,int y){
if(l[x][y]){
return l[x][y];
}else{
l[x][y]=1;
for(int k=0;k<4;k++){
xx=x+ax[k];
yy=y+ay[k];
if(xx>=0&&yy>=0&&xx<r&&yy<c&&h[x][y]>h[xx][yy]){
l[xx][yy]=csb(xx,yy);
l[x][y]=max(l[x][y],l[xx][yy]+1);
}
}
return l[x][y];
}
}
int main(){
memset(l,0,sizeof(l));
scanf("%d%d",&r,&c);
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
scanf("%d",&h[i][j]);
}
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
maxn=max(maxn,csb(i,j));
}
}
printf("%d",maxn);
return 0;
}
by yyyyyyy @ 2020-11-06 13:34:47
xx,yy<0时导致访问出错?
by YNWL @ 2020-11-06 14:05:49
emm用bfs队列做吧
by xueat @ 2021-03-05 02:09:55
我和题主代码思路基本一样,也是wa了第二个...
by xueat @ 2021-03-05 02:43:58
xx与yy不能定义为全局变量。debug搞了半天也没明白原因