AT_aising2019_c Alternating Path
题目描述
有一个 $H$ 行 $W$ 列的网格,每个格子被涂成黑色或白色。
给定 $H$ 个长度为 $W$ 的字符串 $S_1,\ S_2,\ ...,\ S_H$,用于表示每个格子的颜色。对于从上到下第 $i$ 行、从左到右第 $j$ 列的格子($1 \leq i \leq H,\ 1 \leq j \leq W$),如果该格子被涂成黑色,则字符串 $S_i$ 的第 $j$ 个字符为 `#`,如果被涂成白色,则为 `.`。
请计算满足以下条件的黑色格子 $c_1$ 和白色格子 $c_2$ 的有序对的数量:
- 存在一种从格子 $c_1$ 移动到格子 $c_2$ 的方式,每次只能移动到上下左右相邻的格子,且经过的格子的颜色依次为黑、白、黑、白……,即颜色交替。
输入格式
输入按以下格式从标准输入给出。
> $H$ $W$
> $S_1$
> $S_2$
> $\vdots$
> $S_H$
输出格式
输出答案。
说明/提示
## 限制条件
- $1 \leq H, W \leq 400$
- $|S_i| = W$($1 \leq i \leq H$)
- 对于每个 $i$($1 \leq i \leq H$),字符串 $S_i$ 仅由字符 `#` 和 `.` 组成。
## 样例解释 1
记从上到下第 $i$ 行、从左到右第 $j$ 列的格子为 $(i, j)$,则满足条件的格子对有 $((1, 2), (3, 3))$、$((3, 1), (3, 2))$ 等。
由 ChatGPT 4.1 翻译