atcoder#ABC183E. [ABC183E] Queen on Grid

[ABC183E] Queen on Grid

配点 : 500500

問題文

HH マス、横 WW マスのグリッドがあります。 上から ii 行目、左から jj 列目のマス (i,j)(i,j) は、SijS_{ij}# のとき壁であり、. のとき道です。

マス (1,1)(1,1) にチェスのクイーンの駒が置いてあります。 クイーンの駒は、今いる位置から右・下・右下方向に伸びる直線上にあり、壁を飛び越えずに到達できる道のマスに 11 手で移動することができます。

クイーンの駒がマス (1,1)(1,1) からマス (H,W)(H,W) まで移動する方法は何通りありますか? mod(109+7)\bmod (10^9+7) で求めてください。

ただし、移動する方法が異なるとは、ある ii が存在して、ii 手目の移動の後にクイーンの駒があるマスの位置が異なることを指します。

制約

  • 2H,W20002 \leq H,W \leq 2000
  • SijS_{ij}#.
  • S11S_{11}SHWS_{HW}.

入力

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

HH WW

S11S1WS_{11}\ldots S_{1W}

\vdots

SH1SHWS_{H1}\ldots S_{HW}

出力

クイーンの駒がマス (1,1)(1,1) から (H,W)(H,W) まで移動する方法の数を mod(109+7)\mod (10^9+7) で出力せよ。

3 3
...
.#.
...
10

移動方法として次の 1010 通りが考えられます。

  • (1,1)(1,2)(1,3)(2,3)(3,3)(1,1)\to (1,2)\to (1,3)\to (2,3)\to (3,3)
  • (1,1)(1,2)(1,3)(3,3)(1,1)\to (1,2)\to (1,3)\to (3,3)
  • (1,1)(1,2)(2,3)(3,3)(1,1)\to (1,2)\to (2,3)\to (3,3)
  • (1,1)(1,3)(2,3)(3,3)(1,1)\to (1,3)\to (2,3)\to (3,3)
  • (1,1)(1,3)(3,3)(1,1)\to (1,3)\to (3,3)
  • (1,1)(2,1)(3,1)(3,2)(3,3)(1,1)\to (2,1)\to (3,1)\to (3,2)\to (3,3)
  • (1,1)(2,1)(3,1)(3,3)(1,1)\to (2,1)\to (3,1)\to (3,3)
  • (1,1)(2,1)(3,2)(3,3)(1,1)\to (2,1)\to (3,2)\to (3,3)
  • (1,1)(3,1)(3,2)(3,3)(1,1)\to (3,1)\to (3,2)\to (3,3)
  • (1,1)(3,1)(3,3)(1,1)\to (3,1)\to (3,3)
4 4
...#
....
..#.
....
84

(1,1)(1,1) からは 11 手で (1,2),(1,3),(2,1),(2,2),(3,1),(4,1)(1,2),(1,3),(2,1),(2,2),(3,1),(4,1) のいずれかへ移動することが出来ます。

(4,4)(4,4) への移動経路として、例えば (1,1)(3,1)(3,2)(4,3)(4,4)(1,1)\to (3,1)\to (3,2)\to (4,3)\to (4,4) などがあります。

8 10
..........
..........
..........
..........
..........
..........
..........
..........
13701937

移動方法の数を mod(109+7)\bmod (10^9+7) で求めてください。