c057: 7. 過馬路
標籤 :
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2025-06-07 22:21

內容

「怎麼辦,快要趕不上比賽了!」參加今年 YTP 的你,現在快要遲到了,因此你需要盡快的從捷運站走到比賽會場。

捷運站到比賽會場中間的路由 N 條東⻄向道路和 M 條南北向道路交錯⽽成。我們將從北⽅數第 i 條東⻄向道路 和從⻄⽅數第 j 條南北向道路的交叉路⼝⽤ (i, j) 表⽰。捷運站在 (1, 1),比賽會場在 (N, M)。

任兩條相鄰東⻄向道路和任兩條相鄰南北向道路的距離都需要你走⼀分鐘。 這裡的交通號誌有點特別,可以⽤⼀個字串 S 表⽰紅燈的狀態:如果 S[i] 是 W,代表東⻄向的所有路⼝在第 i 分鐘都是紅燈,其他則是綠燈;如果 S[i] 是 H,代表南北向的所有路⼝在第 i 分鐘都是紅燈,其他則是綠燈;如果 S[i] 是 .,代表所有路⼝都是綠燈。你到捷運站的時間是第 1 分鐘。

在這 N M 個路⼝中,有⼀些路⼝不能走。⽽因為你很趕時間,你不想花任何時間在等紅燈或繞路,所以每⼀分鐘你都要從 (i, j) 走到 (i+1, j) 或 (i, j+1)。走到⼀半的時候你開始想,有多少種符合這些條件的解法呢?由於路徑數可能很多,請輸出答案模 109+7 的結果。

註:對於兩個整數 a, b 且 b > 0,a 模 b 指的是 a 除以 b 的餘數。也可以寫成最⼩的非負整數 r,使得 a = bq + r。

輸入說明

第⼀⾏有兩個整數 N, M。

第⼆⾏有⼀個長度為 N + M - 2 的字串 S,可以證明在不等紅燈的情況下,最快的路徑⼀定需要走  N + M - 2 分鐘。

接下來 N ⾏每⼀⾏有 M 個數字,其中 ai,j 為第 i ⾏的第 j 個數字。如果 ai,j = 0 代表路⼝ (i, j) 可以走,如果 ai,j = 1 代表路⼝不能走。

  • 1 ≤ N,M ≤ 1000
  • S[i] ∈ {H,W,.}, ∀1 ≤ i ≤ N + M -2
  • ai,j ∈ {0,1}, a1,1 = 0, aN,M =0
輸出說明

輸出⼀個整數,代表符合條件的路徑數模 109+7 的結果

範例輸入 #1
4 4
......
0 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
範例輸出 #1
4
範例輸入 #2
4 4
.H.W..
0 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
範例輸出 #2
2
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1M
公開 測資點#3 (20%): 1.0s , <1M
公開 測資點#4 (20%): 1.0s , <1M
提示 :

範例測試 2 的兩種走法如下(路徑經過的格⼦⽤ x 表⽰)

x 0 0 0
x x 1 0
0 x 1 0
1 x x x

x x x x
0 0 1 x
0 0 1 x
1 0 0 x

 

標籤:
出處:
2024YTP決賽 [管理者:
zero (管理員)
]


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