#G425031. [GESP202503 四级 C++] 27. 荒地开垦

    ID: 214 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 普及/提高- 上传者: 标签>算法与描述搜索算法二维及多维数组编程题c++

[GESP202503 四级 C++] 27. 荒地开垦

题目描述

小杨有一大片荒地,可以表示为一个 nnmm 列的网格图。

小杨想要开垦这块荒地,但荒地中一些位置存在杂物,对于一块不存在杂物的荒地,该荒地可以开垦当且仅当其上下左右四个方向相邻的格子均不存在杂物。

小杨可以选择至多一个位置,清除该位置的杂物,移除杂物后该位置变为荒地。小杨想知道在清除至多一个位置的杂物的情况下,最多能够开垦多少块荒地。

输入格式

第一行包含两个正整数 n,mn, m。 之后 nn 行,每行包含一个长度为 mm 且仅包含字符 .# 的字符串。. 代表荒地,# 代表杂物。

输出格式

输出一个整数,代表在清除至多一个位置的杂物的情况下,最多能够开垦的荒地块数。

测试样例

3 5
.....
.#..#
.....
11

说明/提示

移除第二行从左数第二块空地的杂物后,第一行前 44 块、第二行前 33 块、第三行前 44 块可开垦,共 1111 块。

数据范围

1n,m10001 \le n, m \le 1000