AT_hhkb2020_b Futon
题目描述
有一个由 $H$ 行 $W$ 列组成的网格,每个格子要么是干净的,要么是脏的。
现在你要在这个网格上铺一张被子。
你可以选择两个在纵向或横向相邻且都干净的格子来铺被子。
给定整数 $H$、$W$ 以及 $H$ 个长度为 $W$ 的字符串 $S_i$。当 $S_i$ 的第 $j$ 个字符为 `.` 时,从上往下第 $i$ 行、从左往右第 $j$ 列的格子是干净的;当 $S_i$ 的第 $j$ 个字符为 `#` 时,该格子是脏的。
请计算一共有多少种铺被子的位置选择方法。
输入格式
输入按以下格式从标准输入读入。
> $H$ $W$
> $S_1$
> $S_2$
> $\vdots$
> $S_H$
输出格式
输出铺被子的位置选择方法的总数。
说明/提示
### 限制条件
- $2 \leq H \leq 100$
- $2 \leq W \leq 100$
- $S_i$ 是仅由 `.` 和 `#` 组成的长度为 $W$ 的字符串
### 样例解释 1
有如下 $3$ 种选择方法:
- 从上往下第 $1$ 行、从左往右第 $1$ 列和第 $2$ 列
- 从上往下第 $2$ 行、从左往右第 $2$ 列和第 $3$ 列
- 从左往右第 $2$ 列、从上往下第 $1$ 行和第 $2$ 行。
由 ChatGPT 4.1 翻译