【MX-X1-T2】「KDOI-05」简单的有限网格问题
题目描述
小 S 在玩一款小游戏。游戏中会有一个 $n\times m$ 的棋盘,其中 $k$ 个位置上有星星。初始有一个捕捉器,在 $(x,y)$ 位置。每次操作,你可以将捕捉器移动到同行或同列的某个位置,使得新位置与原位置不同且必须保证新位置 $(x',y')$ 满足 $1\leq x'\leq n$,$1\leq y'\leq m$。**捕捉器会捕捉 $(x,y)$ 到 $(x',y')$ 路径上所有的星星**。一个星星被捕捉后将会消失。
游戏的目标是在恰好两步内获得尽可能多的星星,然而小 S 不会玩,于是每次就会随意挑选一个可以移动到的新位置进行移动。对于 $(n+m-2)^2$ 种小 S 的不同移动方案,求捕捉到的星星数量之和,答案对 $10^9+7$ 取模。
输入输出格式
输入格式
第一行三个正整数 $n,m,k$,表示棋盘大小与星星个数。
第二行两个正整数 $x,y$,表示捕捉器初始位置。
接下来 $k$ 行,每行两个正整数,表示每颗星星所在的位置 $(p,q)$。每个位置上可以有多颗星星。
输出格式
一行,一个非负整数,表示对于 $(n+m-2)^2$ 种小 S 的不同移动方案,他能捕捉到的星星数量之和,对 $10^9+7$ 取模。
输入输出样例
输入样例 #1
3 3 4
2 2
1 1
1 2
1 3
3 1
输出样例 #1
11
输入样例 #2
5 8 9
2 7
1 7
2 2
4 7
4 5
4 7
2 8
5 2
1 7
1 7
输出样例 #2
153
说明
**【样例解释 \#1】**
网格图中,一种合法的移动捕捉器的方案是:
$$(2,2)\to(1,2)\to(1,3)$$
在该方案中,可以捕捉到位置在 $(1,2)$ 和 $(1,3)$ 的各 $1$ 颗星星。
**【数据范围】**
**本题采用捆绑测试。**
| 子任务编号 | 分值 | $n\leq$ | $m\leq$ |
|:--:|:--:|:--:|:--:|
| $1$ | $5$ | $50$ | $50$ |
| $2$ | $10$ | $1000$ | $1000$ |
| $3$ | $20$ | $10^5$ | $10^5$ |
| $4$ | $25$ | $10^5$ | $10^9$ |
| $5$ | $25$ | $10^9$ | $10^9$ |
| $6$ | $15$ | $10^{18}$ | $10^{18}$ |
对于 $100\%$ 的数据,$1\leq k\leq10^5$,$1\leq n,m\leq10^{18}$,$1\leq x,p\leq n$,$1\leq y,q\leq m$,$(x,y)\neq(p,q)$。