排組雞

發布時間: July 6, 2024, 1:07 a.m.   最後更新時間: July 16, 2024, 2:50 p.m.   時間限制: 1000ms   記憶體限制: 128M

排...組...機...?

¯⁠\⁠_⁠ಠ⁠_⁠ಠ⁠_⁠/⁠¯


在一個月黑風高的正午,hush正眉頭深鎖,仔細思考這三個字的意思。

「排組機是什麼?」他自言自語的說。

「是排組還是雞呢?」「那為什麼不是排組鴨?」

正當他不知所措時,忽然有一個聲音告訴他:「排組機就是排列組合機率嘛!」

\⁠(⁠◎⁠o⁠◎⁠)⁠/「OMG!原來就是這麼一回事啊!我以前從沒想過中文還有這種排列組合呢!」他像個寫了AC code似的手舞足蹈著。

「既然這樣,那我要出一個排組雞的題目挑戰你!」hush對著那個不知從何處來的聲音發起了挑戰。第四次數學危機一觸即發!

「接招吧!」
「雞,為了練出讓人垂涎欲滴的雞腿每天都在訓練場裡面水平或垂直狂奔(從左上角到右下角)。但是,雞不可濕,有些路上面有水,這是它無法接受的!然後"桃園機捷"四個字告訴我們雞只走捷徑。而且眾所皆知雞會飛,不過無法飛很遠也不能飛越過水上,因為輕功太難了。給你訓練場的地圖以及雞的飛行能力,你能夠算出它總共有幾種路徑可以訓練嗎?」hush一口氣把題目說完。

「偷偷告訴你,由於答案可能很大,請對把答案對$10^9+7$取餘數。」

雞.jfif

第一行給你三個正整數$n, m, k$,代表訓練場有$n$行$m$列以及雞一次最多可以飛k格($3\le n,m\le 300$, $1\le k\le 30$)
_c___ -> ___c_ 從第$1$格到第$3$格是飛$2$格
接下來有$n$行,每行有$m$個字元,'#'代表水,'_'代表路
保證最外圍都是水

範例:
5 6 1
######
#____#
##___#
#_#__#
######

輸出一個整數代表從$(1,1)$走到$(n-2,m-2)$有幾種方法

範例輸出: 5
###### ###### ###### ###### ######
#→→→↓# #→→↓_# #→→↓_# #→↓__# #→↓__#
##__↓# ##_→↓# ##_↓_# ##→→↓# ##→↓_#
#_#_1# #_#_2# #_#→3# #_#_4# #_#→5#
###### ###### ###### ###### ######

複製範例
5 6 1
######
#____#
##___#
#_#__#
######
5
複製範例
5 6 2 
######
#____#
#____#
#____#
######
32

1. 從最左上到最右下走完才算一種。
2.兩個方法為同一種方法,若且唯若對於每一步所在位置的相同(一次往右飛兩步和兩次各往右飛一步是不一樣的)

以下寫請解出來再看:

「呃呃啊啊(*Φ皿Φ*)!你以為解出這題就結束了嗎?」悲傷與怒火在hush的眼中來回閃爍「別天真了!這,還只是剛開始」

我們排組鴨再戰!

dp

hush