問題
DP、数え上げ問題。
回答
import sys
# input処理を高速化する
input = sys.stdin.readline
def main():
# input
H, W = map(int, input().split())
A = [input() for _ in range(H)]
MOD = 10**9 + 7
# 0-indexed DPは0で初期化
dp = [[0] * W for _ in range(H)]
# DP初期条件
dp[0][0] = 1
# 全マス目を探索
for i in range(H):
for j in range(W):
if i+1 < H and A[i+1][j] == '.':
dp[i+1][j] += dp[i][j]
# 計算の途中で余りをとる
if dp[i+1][j] >= MOD:
dp[i+1][j] -= MOD
if j+1 < W and A[i][j+1] == '.':
dp[i][j+1] += dp[i][j]
if dp[i][j+1] >= MOD:
dp[i][j+1] -= MOD
print(dp[H-1][W-1])
main()