QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 50

#15361. 路径计数

統計

每天下午,Jack 都会从他家跑到 John 家。他们的房子位于一个大小为 $N \times M$ 的开阔草地上。Jack 每天都想尝试走一条不同的路径,但他不确定有多少种不同的方式可以到达 John 家。

我们用一个 $N$ 行 $M$ 列的网格来表示这片草地,如下所示:

....
..X.
....

Jack 住在左上角,John 住在右下角。Jack 每天都想使用不同的路线,但又不想浪费时间,因此他只会向下和/或向右走。此外,草地的某些部分有障碍物(如岩石或房屋),Jack 无法通过它们(在网格中用 X 表示)。

在上述草地中,4 条有效的路线为:

****      *...      *...      **..
..X*      *.X.      **X.      .*X.
...*      ****      .***      .***

请注意,所有有效路线的长度总是相同($N + M - 1$)。

由于可能路径的数量可能非常大,请输出结果模 $1000000007$($10^9 + 7$)的值。

输入格式

第一行包含两个整数 $N$ 和 $M$,分别表示地图的行数和列数。

接下来的 $N$ 行,每行包含 $M$ 个字符。如果字符是点(.),表示该位置是空地。如果字符是 X,表示该位置有障碍物,Jack 无法使用该格子。

左上角和右下角的格子永远不会有障碍物。

输出格式

输出左上角和右下角位置之间可能路径的数量。请记住将结果模 $1000000007$ 后输出。

在大多数语言中,取模运算符为 %

数据范围

  • $2 \le N \le 200$
  • $2 \le M \le 200$

样例

输入样例 1

3 4
....
..X.
....

输出样例 1

4

输入样例 2

3 3
.X.
X..
...

输出样例 2

0

输入样例 3

5 5
.....
.....
.....
.....
.....

输出样例 3

70

输入样例 4

30 20
....................
....................
....................
....................
....................
....................
....................
....................
....X...............
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
............X.......
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................

输出样例 4

833886024

说明

对于样例 4,实际的路径数结果为 $6768833933400$,但我们需要输出该值模 $1000000007$ 的结果,而 $6768833933400 \bmod 1000000007$ 等于 $833886024$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.