atcoder#DPH. Grid 1

Grid 1

题目描述

H H 行、横 W W 列のグリッドがあります。 上から i i 行目、左から j j 列目のマスを (i, j) (i,\ j) で表します。

i, j i,\ j (1  i  H 1\ \leq\ i\ \leq\ H , 1  j  W 1\ \leq\ j\ \leq\ W ) について、マス (i, j) (i,\ j) の情報が文字 ai, j a_{i,\ j} によって与えられます。 ai, j a_{i,\ j} . ならばマス (i, j) (i,\ j) は空マスであり、ai, j a_{i,\ j} # ならばマス (i, j) (i,\ j) は壁のマスです。 マス (1, 1) (1,\ 1) および (H, W) (H,\ W) は空マスであることが保証されています。

太郎君は、マス (1, 1) (1,\ 1) から出発し、右または下に隣り合う空マスへの移動を繰り返すことで、マス (H, W) (H,\ W) まで辿り着こうとしています。

マス (1, 1) (1,\ 1) から (H, W) (H,\ W) までの太郎君の経路は何通りでしょうか? 答えは非常に大きくなりうるので、109 + 7 10^9\ +\ 7 で割った余りを求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

H H W W a1, 1 a_{1,\ 1} \ldots a1, W a_{1,\ W} : : aH, 1 a_{H,\ 1} \ldots aH, W a_{H,\ W}

输出格式

マス (1, 1) (1,\ 1) から (H, W) (H,\ W) までの太郎君の経路は何通りか? 109 + 7 10^9\ +\ 7 で割った余りを出力せよ。

题目大意

给一个 H×WH\times W 的网格,一开始在左上角 (1,1)(1,1) 每一步只能向右或向下走,不能经过 '#' 格子,求走到右下角 (H,W)(H,W) 有多少种走法。

答案对 109+710^9+7 取模。

3 4
...#
.#..
....
3
5 2
..
#.
..
.#
..
0
5 5
..#..
.....
#...#
.....
..#..
24
20 20
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
345263555

提示

制約

  • H H および W W は整数である。
  • 2  H, W  1000 2\ \leq\ H,\ W\ \leq\ 1000
  • ai, j a_{i,\ j} . または # である。
  • マス (1, 1) (1,\ 1) および (H, W) (H,\ W) は空マスである。

Sample Explanation 1

経路は次図の 3 3 通りです。 ![](https://img.atcoder.jp/dp/grid\_0\_0\_muffet.png)

Sample Explanation 2

経路が存在しない場合もあります。

Sample Explanation 4

答えを 109 + 7 10^9\ +\ 7 で割った余りを出力することを忘れずに。