AT_past18_j 反転ゲーム

题目描述

有一个由 $H$ 行 $W$ 列组成的网格。自上而下第 $i$ 行、从左至右第 $j$ 列的单元格记作 $(i, j)$。 初始时,如果 $S_{i,j}$ 为 `.`,则单元格 $(i, j)$ 为白色;如果为 `#`,则为黑色。 你起始位于单元格 $(1,1)$。你可以向上、下、左、右四个方向移动到相邻的单元格,不能走出网格。 每当你行动一次,你踩到的那个单元格颜色会发生翻转(白变黑,黑变白)。 你的目标是让所有单元格都变为白色。请你求出所需的最少移动步数。 可证明在给定的约束下,你总能够将所有单元格变为白色。

输入格式

输入从标准输入读入,格式如下: > $H$ $W$ \\ > $S_{1,1}\ldots S_{1,W}$ \\ > $\vdots$ \\ > $S_{H,1}\ldots S_{H,W}$

输出格式

输出答案。

说明/提示

### 样例解释 1 通过四步移动 $ (1,1)\to(1,2)\to(2,2)\to(3,2)\to(2,2) $,可以使所有单元格变为白色。 ### 样例解释 2 所有单元格初始即为白色,因此不需要任何移动。 ### 约束条件 - $1 \leq H,W \leq 4$ - $H\times W\geq 2$ - $H$ 和 $W$ 是整数。 - $S_{i,j}$ 是 `.` 或 `#`。 由 ChatGPT 5 翻译