本蒟蒻想了好几天都没找出问题,求助各位dalao神犇

P1434 [SHOI2002] 滑雪

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搞了半天也没明白原因


|