AT_wupc2019_b 10 puzzle

题目描述

有一个高为 $H$、宽为 $W$ 的网格。初始时,第 $i$ 行第 $j$ 列的格子上写有一个 $0$ 到 $9$ 之间的整数 $A_{i,j}$。网格中的格子与其共享边的格子相邻。这里,某个格子的子集被称为“连通”的,指的是对于集合中任意一对格子,都可以通过只经过集合中相邻的格子多次移动而互相到达。 加藤君可以进行如下操作 $0$ 次或多次: - 选择一个“连通”的格子子集,设该集合中格子上写的数的最大值为 $M$,然后将该集合中所有格子上的数都改写为 $2 \times M$ 除以 $10$ 的余数。 请判断加藤君是否能够将网格中所有格子上的数都变为 $0$。如果可以,请求出实现这一目标所需的最小操作次数。

输入格式

输入通过标准输入按以下格式给出。 ``` $H$ $W$ $A_{1,1}\ A_{1,2}\ \dots\ A_{1,W}$ $A_{2,1}\ A_{2,2}\ \dots\ A_{2,W}$ $\vdots$ $A_{H,1}\ A_{H,2}\ \dots\ A_{H,W}$ ```

输出格式

如果可以将所有格子上的数都变为 $0$,请输出如下格式的 `Yes` 和最小操作次数 $N$: ``` Yes $N$ ``` 如果无法实现,请输出 `No`。

说明/提示

### 限制条件 - $1 \leq H,W \leq 100$ - $0 \leq A_{i,j} \leq 9$ - 输入的所有值均为整数。 ### 样例解释 1 例如,如果选择所有格子作为集合,则 $M=5$。$2 \times M=10$,$10$ 除以 $10$ 的余数为 $0$,因此可以将所有格子上的数都改写为 $0$。所以只需 $1$ 次操作即可达成目标。 ### 样例解释 2 无论如何操作,都无法达成目标。 ### 样例解释 3 例如,首先选择所有写有 $6$ 的格子作为集合(这是“连通”的),对其进行操作后,再选择所有格子作为集合进行操作,这样只需 $2$ 次操作即可达成目标。 由 ChatGPT 4.1 翻译