AT_abc183_e [ABC183E] Queen on Grid
题目描述
有一个高 $H$ 行、宽 $W$ 列的网格。第 $i$ 行第 $j$ 列的格子 $(i, j)$,如果 $S_{ij}$ 是 `#`,则为墙,否则为道路。
在格子 $(1,1)$ 上放有国际象棋中的皇后棋子。皇后可以沿当前位置向右、向下、右下三个方向的直线上移动,每次移动可以到达不越过墙的任意道路格子,且每次移动算作一步。
请计算皇后从 $(1,1)$ 移动到 $(H,W)$ 的不同路径数,答案对 $10^9+7$ 取模。
注意,若存在某个 $i$,使得第 $i$ 步移动后皇后所在格子的位置不同,则认为两种移动方法不同。
输入格式
输入以如下格式从标准输入读入。
> $H$ $W$
> $S_{11}\ldots S_{1W}$
> $\vdots$
> $S_{H1}\ldots S_{HW}$
输出格式
输出皇后从 $(1,1)$ 移动到 $(H,W)$ 的路径数,对 $10^9+7$ 取模。
说明/提示
## 限制
- $2 \leq H, W \leq 2000$
- $S_{ij}$ 只可能为 `#` 或 `.`
- $S_{11}$ 和 $S_{HW}$ 均为 `.`
## 样例解释 1
存在如下 $10$ 种移动方法:
- $(1,1)\to (1,2)\to (1,3)\to (2,3)\to (3,3)$
- $(1,1)\to (1,2)\to (1,3)\to (3,3)$
- $(1,1)\to (1,2)\to (2,3)\to (3,3)$
- $(1,1)\to (1,3)\to (2,3)\to (3,3)$
- $(1,1)\to (1,3)\to (3,3)$
- $(1,1)\to (2,1)\to (3,1)\to (3,2)\to (3,3)$
- $(1,1)\to (2,1)\to (3,1)\to (3,3)$
- $(1,1)\to (2,1)\to (3,2)\to (3,3)$
- $(1,1)\to (3,1)\to (3,2)\to (3,3)$
- $(1,1)\to (3,1)\to (3,3)$
## 样例解释 2
从 $(1,1)$ 出发,可以一步到达 $(1,2)$、$(1,3)$、$(2,1)$、$(2,2)$、$(3,1)$、$(4,1)$ 中的任意一个。例如,$(1,1)\to (3,1)\to (3,2)\to (4,3)\to (4,4)$ 是到 $(4,4)$ 的一种路径。
## 样例解释 3
请对路径数取 $10^9+7$ 的模输出。
由 ChatGPT 4.1 翻译