#aTCODERDPROUNDY. AT_dp_y Grid 2

AT_dp_y Grid 2

AT_dp_y Grid 2

题目描述

有一个高为 HH 行、宽为 WW 列的网格。我们用 (i,j)(i, j) 表示从上往下第 ii 行、从左往右第 jj 列的格子。

在这个网格中,有 NN 个格子 (r1,c1), (r2,c2), , (rN,cN)(r_1, c_1),\ (r_2, c_2),\ \ldots,\ (r_N, c_N) 是墙,其余的格子都是空格子。保证格子 (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+710^9 + 7 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

HH WW NN r1r_1 c1c_1 r2r_2 c2c_2 \ldots rNr_N cNc_N

输出格式

输出从 (1,1)(1, 1)(H,W)(H, W) 的路径数,对 109+710^9 + 7 取模。

输入输出样例 #1

输入 #1

3 4 2
2 2
1 4

输出 #1

3

输入输出样例 #2

输入 #2

5 2 2
2 1
4 2

输出 #2

0

输入输出样例 #3

输入 #3

5 5 4
3 1
3 5
1 3
5 3

输出 #3

24

输入输出样例 #4

输入 #4

100000 100000 1
50000 50000

输出 #4

123445622

说明/提示

限制条件

  • 所有输入均为整数。
  • 2H,W1052 \leq H, W \leq 10^5
  • 1N30001 \leq N \leq 3000
  • 1riH1 \leq r_i \leq H
  • 1ciW1 \leq c_i \leq W
  • 所有 (ri,ci)(r_i, c_i) 互不相同。
  • (1,1)(1, 1)(H,W)(H, W) 都是空格子。

样例解释 1

路径共有如下图的 33 种。

样例解释 2

也有可能不存在任何路径。

样例解释 4

不要忘记输出答案时要对 109+710^9 + 7 取模。

由 ChatGPT 4.1 翻译