‹ 上一题 下一题 ›

g6-07187. 最大片·面积不加总 未做

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

小河统计校园地图里最大的一片空地有多大。他把 dfs 改成有返回值:每进入一个新格子并标记后,返回 加上四个方向递归返回值之和——也就是「这一片连着染了多少格」。主循环写成:

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

对下面这张 的地图(. 空地、# 墙)跑一遍,程序输出( )。

.###
.#..
###.
  • A. 1——以为 dfs 只会把起点这一个格数进来
  • B. 2——输出的是连通块的块数,和「数有几片」的程序搞混了
  • C. 5——把两片各自的返回值加了起来,求出的是全图空地总数
  • D. 3——每一片返回自己的面积,外层取最大
未选择
输入
输出

            
答案