AT_agc014_c [AGC014C] Closed Rooms

题目描述

高桥君被困在一栋建筑物里。 这栋建筑物由 $H$ 行 $W$ 列共 $H×W$ 个房间组成,自上而下第 $i$ 行,自左而右第 $j$ 列的房间用 $(i,j)$ 表示,该房间的状态由 $A_{i,j}$ 描述。若 $A_{i,j}=$ `#`,则该房间为封闭房间;若 $A_{i,j}=$ `.`,则该房间可以自由进出。$A_{i,j}=$ `S` 的房间是高桥君当前所在的房间,且该房间同样可以自由进出。 此外,位于第 $1$ 行、第 $1$ 列、第 $H$ 行、第 $W$ 列之一的房间都与建筑物外部相连,除此以外的每个房间 $(i,j)$ 与 $4$ 个相邻房间 $(i-1,j)$、$(i+1,j)$、$(i,j-1)$、$(i,j+1)$ 相邻。 为了逃出这栋建筑物,高桥君打算使用魔法。每次使用魔法可以进行如下操作: - 高桥君可以从当前房间移动到相邻的房间,最多连续移动 $K$ 次,且不能进入封闭房间。 - 之后,他可以选择至多 $K$ 个封闭房间,并将它们变为打开状态(今后这些房间可以自由进出)。 以上操作中,可以选择不移动或者不打开任何封闭房间。 高桥君的目标是到达与建筑物外部相连的任意房间。请你求出他至少需要施展多少次魔法才能达成目标。 保证初始时高桥君所在的房间与建筑物外部没有直接相连。

输入格式

输入从标准输入中给出,格式如下: > $H$ $W$ $K$ > > $A_{1,1}A_{1,2}\ldots A_{1,W}$ > > $\vdots$ > > $A_{H,1}A_{H,2}\ldots A_{H,W}$

输出格式

输出高桥君所需施展魔法的最小次数。

说明/提示

### 限制条件 - $3\leq H\leq 800$ - $3\leq W\leq 800$ - $1\leq K\leq H×W$ - $A_{i,j}$ 仅可能为 `#`、`.`、`S` 中的一个。 - 恰好存在唯一的 $A_{i,j}=S$,且 $2\leq i\leq H-1,\ 2\leq j\leq W-1$。 ### 样例解释 1 高桥君可以在第一次魔法中直接移动到房间 $(1,2)$,所以只需施展 $1$ 次魔法。 ### 样例解释 2 高桥君在第一次魔法无法移动,但可以在第一次魔法中打开房间 $(1,2)$,然后在下一次魔法中移动到 $(1,2)$,共需施展 $2$ 次魔法即可达成目标。 由 ChatGPT 5 翻译