#P15744. [JAG 2024 Summer Camp #3] Renovation

    ID: 15682 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2024枚举记忆化搜索连通块ICPC

[JAG 2024 Summer Camp #3] Renovation

说明

Jack 计划翻新他的房子,以使得他的房间尽可能大。然而,由于 Jack 没有太多钱,他希望以最小的努力创建一个宽敞的房间。

Jack 的房子用一个高度为 HH、宽度为 WW 的网格表示。网格中的每个单元格处于以下状态之一:

  • . :地板,Jack 可以自由通过。
  • # :墙壁,Jack 无法通过。
  • S :Jack 当前所在的位置,也是一个地板单元格。

Jack 可以移动到网格中相邻(上、下、左、右)的地板单元格。他不能移动到房子的边界之外。

在这次翻新中,Jack 可以破坏至多一面墙,将其变为地板。确定在做出这一改变后,Jack 从当前位置能够到达的最大单元格数量。

输入格式

输入包含一个单独的测试用例,格式如下:

$$\begin{aligned} & H \ W \\ & l_{1} \\ & l_{2} \\ & \vdots \\ & l_{H} \end{aligned}$$

第一行包含两个整数 HHWW,分别表示网格的高度和宽度。HHWW 均在 22500500 之间(含端点)。

接下来的 HH 行每行包含一个长度为 WW 的字符串,表示网格。每个字符串 lil_{i} 由字符 .(地板)、#(墙壁)和 S(Jack 的起始位置)组成。保证网格中恰好包含一个 S

输出格式

输出一个整数,表示 Jack 在可选地破坏一面墙后,从起始位置能够到达的最大单元格数量。

3 5
.#...
.####
#.#.S
6
3 7
.......
...S...
.......
21

提示

翻译由 DeepSeek V3.2 完成