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 翻译