a204: B. 貓貓與迷宮
標籤 : 2019高中組初賽
通過比率 : 0人/1人 ( 0% ) [非即時]
評分方式:
Strictly

最近更新 : 2023-08-09 12:39

內容

2019 網際網路程式設計全國大賽 高中組初賽

殿壬是個天才兒童,他在一個月大的時候就學會數數、六個月大的時候就學會乘法跟除法、一歲時學會寫程式、一歲又六個月時養了可愛的拉不拉多、一歲又十個月時養了可愛的貓咪、兩歲時發明了「吃餅乾」的遊戲,現在要講的是殿壬三歲大的故事。

這天,殿壬牽著他的貓貓來到了 NPSC 魔法學院的魔幻迷宮中。既然是貓貓,當然很喜歡玩躲貓貓囉!因此到了迷宮之後,貓貓就迅速地跑去躲起來了,讓殿壬來找貓貓!

魔幻迷宮可以用一個高度為 N,寬度為 M 的方格圖表示,左上方的座標是 (1,1),右下方的座標是 (N,M),其中往下為 +x 方向,往右為 +y 方向。迷宮中有些格子是無法穿越的障礙物,剩下的格子則可以自由通行。

這個迷宮之所以稱作魔幻迷宮,是因為每次迷宮中的一個格子可能會由障礙物變為可以走的空地,或從可以走的空地變成一個不能走的障礙物。此外,在魔幻迷宮中每次移動只能往下、往左或往右,並且走過的格子不能重複經過。

在殿壬找貓貓的過程中,貓貓因為等著等著太無聊了,居然在計算殿壬從起始點出發,找到貓貓的方法數有幾種!

現在,給你過程中迷宮所發生的 Q 個事件。請你依照事件,告訴貓貓殿壬有多少方法可以找到他呢?

輸入說明

輸入第一行有三個整數 N,M,Q,代表迷宮可以用一個 N × M 的方格圖表示,並且在殿壬找貓貓的過程中,魔幻迷宮發生了 Q 個事件。

接下來的 N 行,每行有一個長度為 M 的0/1字串。若第 i 行、第 j 列中的字元為0,代表

(i,j)方格是個空地;若第 i 行、第 j 列的字元為1,代表(i,j)方格有障礙物。

接下來的 Q 行為殿壬找貓貓的過程中,魔幻迷宮所發生的事件,每個事件可以用三個整數來表示,且形式為以下兩種中的一種:

  • 1 x y: 代表 (x,y) 格子的狀態改變了,也就是由空地變為障礙物、或由障礙物變為空地。
  • 2 a b: 代表貓貓想知道在當前的迷宮狀態之下,殿壬從 (1,a) 出發,走到貓貓在的位置 (N,b)的方法數除以109 +7的餘數。若(1,a)或(N,b)是障礙物,視同方法數為0。
  • 1 ≤ N,Q ≤ 50000
  • 1 ≤ M ≤ 10
  • 1 ≤ x N
  • 1 ≤ y M
  • 1 ≤ a,b M
輸出說明

對於每個形式為2 a b的事件,請輸出一行包含一個整數,代表殿壬找到貓貓的方法數除以109 +7的餘數。

範例輸入
2 2 3
00
00
2 1 2
1 1 2
2 1 2
範例輸出
2
1
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (9%): 1.0s , <1M
公開 測資點#1 (9%): 1.0s , <1K
公開 測資點#2 (9%): 1.0s , <1M
公開 測資點#3 (9%): 1.0s , <1M
公開 測資點#4 (9%): 1.0s , <1M
公開 測資點#5 (9%): 1.0s , <1M
公開 測資點#6 (9%): 1.0s , <1M
公開 測資點#7 (9%): 1.0s , <1M
公開 測資點#8 (9%): 1.0s , <1M
公開 測資點#9 (9%): 1.0s , <1M
公開 測資點#10 (10%): 1.0s , <1M
提示 :
標籤:
2019高中組初賽
出處:
NPSC [管理者:
zero (管理員)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」