AT_arc214_f [ARC214F] Unpredictable Moves

题目描述

有一个 $H \times W$ 的网格。记 $(i,j)$ 表示从上往下第 $i$ 行、从左往右第 $j$ 列的格子。 每个格子是空地或墙,信息由 $H \times W$ 个字符 $S_{1,1},\dots ,S_{H,W}$ 表示。如果 $S_{i,j}$ 为 `.`,则 $(i,j)$ 是空地;如果为 `#`,则为墙。 起初,Takahashi 在 $(1,1)$ 格子。他每次可以向相邻的上下左右四个方向之一移动任意次数。但**他不能连续两次向同一个方向移动**。另外,他不能移动到墙格,也不能走出网格。 出发前,他可以破坏若干个墙格,使其变为空地。为了能够到达 $(H,W)$,他最少需要破坏多少个墙格?在本题约束下,可以证明必定存在某种破坏墙格的方法使他能到达 $(H,W)$。 共有 $T$ 组测试数据;请分别求解。

输入格式

输入由标准输入给出,格式如下: > $T$ $\text{case}_1$ $\text{case}_2$ $\vdots$ $\text{case}_T$ 每组测试数据格式如下: > $H$ $W$ $S_{1,1}$ $S_{1,2}$ $\ldots$ $S_{1,W}$ > $S_{2,1}$ $S_{2,2}$ $\ldots$ $S_{2,W}$ > $\vdots$ > $S_{H,1}$ $S_{H,2}$ $\ldots$ $S_{H,W}$

输出格式

输出 $T$ 行。 第 $i$ 行输出第 $i$ 组测试数据,为 Takahashi 能到达 $(H,W)$ 所需破坏的最少墙格数量。

说明/提示

### 样例解释 1 对于第一个测试点,Takahashi 可以通过破坏下图所示的两个墙格到达 $(H,W)$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc214_f/73b76a81e561cee0f47e0bf04b01cd82b7f131dfe249d210fe7d26baf55344b0.png) 左边展示了需要破坏的墙格,右边给出了一个移动路径。注意,不要求移动次数最少,也可以多次经过同一个格子。 对于第二个测试点,无需破坏任何墙格即可到达 $(H,W)$。 ### 约束条件 - $1 \le T \le 1000$ - $2 \le H, W \le 100$ - $S_{i,j}$ 为 `.` 或 `#`。 - $S_{1,1}$ 和 $S_{H,W}$ 均为 `.`。 - 所有测试数据的 $HW$ 之和不超过 $3\times 10^4$。 由 ChatGPT 5 翻译