TopCoder

餘切
$\Huge\text{freeh1}$

User's AC Ratio

87.5% (7/8)

Submission's AC Ratio

31.0% (9/29)

Tags

Description

Going to Phase
俗話說,會打惡靈的
要嘛槍法跟鬼一樣,否則都是免洗送頭仔

聽不懂就算了,讓我們進入正式題目。

蔡摩卡是建北電資的吉祥物之一,他是隻很可愛的貓咪

專長有鑽紙箱(詳情請見去年的考幹上機考)、把別人便當拿去吃(對,他就是拿到我的==)、爆打自己女朋友的男朋友(們)等等,總之十分討喜。

丁瑞妮是蔡摩卡的女朋友,我們先不論丁瑞妮到底喜歡誰,總之蔡摩卡每逢星期三或五,都會興致沖沖地投奔丁瑞妮的身邊。然而,如果蔡摩卡又在拖拖拉拉,讓丁瑞妮等太久的話,就會使女朋友生氣,這點讓他十分困擾。

現在有個大小為 $N×M$ 的網狀矩形空間,令左上角的座標是 $(1, 1)$,右下角的座標是 $(N, M)$,以右方、下方為正向

假設蔡摩卡的初始站位是 $(1, 1)$,丁瑞妮在 $(N, M)$ 的地方等著他。蔡摩卡每移動一格,需要花費 1 單位的時間,求蔡摩卡有多少種方式,可以用最短的時間到達丁瑞妮身邊?

假設事情有那麼簡單就好了。

正當蔡摩卡摩擦著他的小小貓掌,規劃好所有路線,準備飛奔過去時,"轟!"的一聲巨響,劃破了寂靜夜空,讓蔡摩卡止住了腳步。

一個神祕的女人,突然出現在蔡摩卡面前

My name is Wraith - and we have a job to do.

一個神祕的女人,突然出現在蔡摩卡面前

:有什麼事嗎,否則我要去找女朋友了,沒空鳥你

雖然受到驚嚇,但此時的蔡摩卡只知道,丁瑞妮正在等待自己,根本不想陪這個人浪費時間

I know all the roads. They all lead to the same place.

"不要一直講一些聽不懂的話啦...咦咦?"

蔡摩卡話還沒說完,眼前的女人突然化做一條射線,從蔡摩卡的眼前消失。蔡摩卡回想起自己的貓生,他從來見過如此荒謬之事,情不自禁傻在原地。

還好,你跟阿蘇夠熟,知道阿蘇又在偷 APEX 的梗了,便從容地告訴蔡摩卡,剛剛究竟發生了什麼。

原來,剛剛的神秘人名為Renee Blasey,以下就簡稱Renee吧。Renee 來自其他維度,本身具有撕裂時空、次元的能力,能夠在現實與虛空間自由穿梭。

而剛剛的那聲爆炸,正是 Renee 穿越至此世界的象徵。原來,Renee 有一個名為禕凡婁的男友,然而,前幾天她男友走失了。根據不知哪裡來的情報,她感應到禕凡婁的位置,竟然在丁瑞妮的旁邊!男友失蹤的她心急如焚,連思考都沒有,便飛奔來到此世界,也嚇到了正好站在迸出點旁的蔡摩卡。

由於 Renee 在做世界穿越時,會放出極大的能量,導致此世界的時空發生了一些變化:現在網狀矩形空間中,有 R 個時空坍方。這些坍方對於凡人(包含貓咪)來說,是極度致命的,一旦碰觸到便會落入無盡深淵,無法脫身。顯然蔡摩卡完全不想進入此地,他還想活著與丁瑞妮常相廝守。

另外,畢竟 Renee 並非來自此世界,所有她擁有某些凡人所不具有的力量,具體來說是這樣的:

Renee 是個虛空行者,本來就可以突破時空與空間的限制,時空坍方無法對她造成任何影響。Renee 能夠在毫髮無傷的情況下,進入虛空再返回,所以能夠任意經過或穿越所有時空坍方

Renee 之所以化作一道白光,其實是因為她直接踏入了虛空,往禕凡婁的方向,即 $(N, M)$ 奔去了。已知 Renee 走了從 $(1, 1)$ 至 $(N, M)$ 間的一條最短路徑(換句話說,她全程只有往下或往右走),而且她發現自己今天的體力還不錯,最高時速可以達到 60 km/hr...

你其實還想再描述更多細節,但你發現蔡摩卡越來越不耐煩了。他現在只想知道,在不碰到時空坍方的前提下,總共有多少種不同的最短路線,能夠讓他利用最少時間來與丁瑞妮碰面?

喔,對了,如果蔡摩卡無法在符合上面前提的狀況下,到達丁瑞妮旁邊,請輸出 "Path No Found.",來徹底粉碎他的希望。

由於答案可能很大,請將輸出結果模上 $109 + 7$

備註

  • - 為了怕你根本看不懂,阿蘇很好心地在這邊放了白話文提敘:
  • 有一張 N×M 的矩形圖

令左上角為起點,右下角為終點,其中有 R 個障礙物,有障礙物的地方不得進入。求起點到終點有多少種最小路徑,答案請模過 $109 + 7$。若根本無法從起點移動到終點,則輸出Path No Found.

Input Format

$N\,M\,R$

$R_{1x} \,\,\, R_{1y}$

$R_{2x} \,\,\, R_{2y}$

$...$

==========

所有輸入的意義同提敘

第一行是四個整整數 N、M、R

代表空間的長寬是 N × M

共有 R 個時空坍方(aka 障礙物)

保證 $R \leq 1000$

接下來的 R 行,每行有有兩個正整數

代表第 i 個時空坍方所在的(row)與(column)

Output Format

針對有辦法到達終點的情況,請輸出一個正整數

表示能到達終點的相異最短路徑數模 $10^9 + 7$ 的結果並換行

否則輸出Path No Found.

Sample Input 1

3 3 0

Sample Output 1

6

Sample Input 2

3 3 2
1 2
2 2

Sample Output 2

1

Hints

對於 5% 的測試資料,$2 \leq N = M \leq 10,R = 0$

對於 15% 的測試資料,$2 \leq N、M \leq 10,R = 0$

對於 30% 的測試資料,$2 \leq N、M \leq 2000,R = 0$

對於 50% 的測試資料,$2 \leq N、M \leq 2000,1 \leq R \leq 50$,保證不會出現無路可走的情況、保證時空坍方不相鄰

對於 70% 的測試資料,$2 \leq N、M \leq 2000,1 \leq R \leq 1000$,保證不會出現無路可走的情況

對於 100% 的測試資料,$2 \leq N、M \leq 2000,1 \leq R \leq 1000$

但是在ISCOJ上,你沒有拿100分都只能拿WA

偷更:其實我可以設定Partial Accepted 啦,只是我懶,2ㄏ2ㄏ

Problem Source

111年小社賽pF

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Memory Limit (RSS, KiB) Output Limit (KiB) Subtasks
0 1000 250000 250000 65536
1 1000 250000 250000 65536
2 1000 250000 250000 65536
3 1000 250000 250000 65536
4 1000 250000 250000 65536
5 1000 250000 250000 65536
6 1000 250000 250000 65536
7 1000 250000 250000 65536
8 1000 250000 250000 65536
9 1000 250000 250000 65536
10 1000 250000 250000 65536
11 1000 250000 250000 65536
12 1000 250000 250000 65536
13 1000 250000 250000 65536
14 1000 250000 250000 65536
15 1000 250000 250000 65536
16 1000 250000 250000 65536
17 1000 250000 250000 65536
18 1000 250000 250000 65536
19 1000 250000 250000 65536
20 1000 250000 250000 65536
21 1000 250000 250000 65536
22 1000 250000 250000 65536
23 1000 250000 250000 65536
24 1000 250000 250000 65536
25 1000 250000 250000 65536
26 1000 250000 250000 65536
27 1000 250000 250000 65536
28 1000 250000 250000 65536
29 1000 250000 250000 65536