‹ 上一题 下一题 ›

g6-07095. 方向数组·标记写晚了 未做

1000 ms 256 MB 测试点 ? 自拟题知识点题GESP-66级·深度优先搜索客观题单选

小酷嘀咕:「标记嘛,早晚写都一样。」于是他把骨架改成了这样:

void dfs(int x, int y) {
    if (x < 0 || x >= n || y < 0 || y >= m) return;
    if (room[x][y] == '#' || vis[x][y]) return;
    for (int d = 0; d < 4; d++)
        dfs(x + dx[d], y + dy[d]);
    vis[x][y] = true;    // 标记挪到了递归之后
}

关于这版代码,说法正确的是( )。

  • A. 结果完全一样,反正每个格子最终都被标记上了
  • B. 只是标记得晚一点,访问顺序会变,但不会出错
  • C. 不会再访问重复格子,效率反而更高
  • D. 照样死循环爆栈——递归还没返回、vis 还是 false,相邻格子会把同一个格子再进一遍
未选择
输入
输出

            
答案