Mogu @ 2018-06-07 23:00:29
for(int i = 0; i < 4; i++){
int cx = x+dx[i],cy = y+dy[i];
if(map[x][y] > map[cx][cy] && cx >= 0 && cx < r && cy >= 0 && cy < c){
t = max(t,dfs(cx,cy)+1);
}
}
下面这个MLE
for(int i = 0; i < 4; i++){
int cx = x+dx[i],cy = y+dy[i];
if(map[x][y] < map[cx][cy] || cx < 0 || cx >= r || cx < 0 || cy >= c) continue;
t = max(t,dfs(cx,cy)+1);
}
cx 和 cy表示下一个要dfs的坐标,map存图
by Siyuan @ 2018-06-07 23:06:46
第一个是map[x][y] > map[cx][cy]
,那么第二个理应map[x][y] <= map[cx][cy]
by Mogu @ 2018-06-07 23:16:07
@siyuan 感谢大佬正解。我还以为有什么神秘力量
by 疯疯芸 @ 2018-06-08 07:39:39
开始怀疑你程序猿的身份