‹ 上一题 下一题 ›

g6-07097. 连通块·计数开关 未做

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

数连通块的外层循环长这样:

int cnt = 0;
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        if (room[i][j] == '.' && !vis[i][j]) {
            dfs(i, j);
            cnt++;
        }

小酷问:条件里的 !vis[i][j] 能不能删掉?正确的回答是( )。

  • A. 能删,dfs 内部反正会检查 vis,不会走重复
  • B. 能删,只是程序稍微慢一点,答案不变
  • C. 不能删,删了会数组越界
  • D. 不能删,删了同一片空地里的每个格子都会被当成「新片」再计一次数,cnt 会数成空地格子总数
未选择
输入
输出

            
答案