題目傳送門
有乙個奇奇怪怪的火車站,奇奇怪怪的站長jtz想要解決乙個奇奇怪怪的問題。
現在有 \(n\) 列火車要進出站,對於同一列車進站和出站有且只有一次鳴笛,笛聲有 \(1-m\) 種音調,要求相鄰的兩次鳴笛之間音調的差的絕對值不能小於 \(k\) (不鳴笛笛聲音調看作\(1e100\) )。不然耳朵不好的車站管理員xyh分不清楚是哪一列車,現在xyh給出了每一列火車的進出,jtz想知道總共有多少種鳴笛的方案,而他又不想太麻煩,所以只需要方案數除以 \(43621789\) 的餘數。
某中學八年級大佬rsj知道了這個訊息後,覺得太簡單了,幾下算出了結果 \(x\) (取餘數後)。於是他想讓你算出 \(m^x \mod 43621789\) 。
第一行三個整數 \(n,m,k\) 。
第二行有 \(2n\) 個整數,每個整數是 \(0\) 或 \(1\) 代表車進站和出站,保證資料合法,也就是說當車站沒有車的時候沒有車出站,最後車站沒有車。
一行,表示答案。( \(m^x \mod 43621789\) )
輸入#1
2 1 0
0 0 1 1
輸出#1
1
輸入#2
3 5 2
0 0 0 1 1 1
輸出#2
40308287
圖非常重要樣例1: \(x=4,m=1\) 答案為 \(1^4 \mod 43621789=1\)
樣例2: \(x=250,m=5\) 答案為 \(5^ \mod 43621789=40308287\)
本題採用 subtask
\(\text\ 1\): 測試點 \(1-5\)
\(30\%\)
\(n\le 3,m\le 7\)
\(\text\ 2\): 測試點 \(6-12\)
\(40\%\)
\(n\le 100,m\le 7\)
\(\text\ 3\): 測試點 \(13-20\)
\(40\%\)
\(n\le 500,m\le 7\)
你只有通過每個 \(\text\) 的所有測試點才能獲得該 \(\text\) 的分值。
這道題目的出題靈感來自於cf149d。我們只要把火車進站看成左括號,火車出站看成右括號。其實應該是棧。
排列與組合是行不通的,因為對於同一列車進站和出站有且只有一次鳴笛,由於沒有要求輸出步驟,又可以搜尋,考慮dp。無疑是區間dp,因為對於鳴笛的音調會影響到其他的方案數量,那麼需要將左右側的鳴笛音調列入方程轉移式。
令函式 \(f(i,j,x,y)\) 為區間 \([i,j]\) 中,左右端點中,左端點的鳴笛音調為 \(x\) ,右端點的鳴笛音調為 \(y\) 的種數。不鳴笛記為 \(0\) 。分兩種情況考慮。
我們需要預處理出輛火車的進出站,存在陣列裡,要求能 \(\theta (1)\) 查詢。
情況一:第 \(i\)
\(j\) 次進出站時相同的車。
那麼我們需要列舉 \(i,j\) 的音調以及相鄰的 \(i+1,j-1\) 的音調,並且要保證資料合法。
\[f(i,j,x,y)=\sum f(i+1,j-1,a,b)
\]其中 \(|a-x|\geq k\) 或者 \(x=0,a\not=0\) 或者 \(x\not=0,a=0\)
並且 \(|b-y|\geq k\) 或者 \(b=0,y\not=0\) 或者 \(b\not=0,y=0\)
並且 \(x=0,y\not=0\) 或者 \(x\not= 0,y\not= 0\)
情況二:第 \(i\)
\(j\) 次進出站時不是相同的車。
設第 \(i\) 輛車的出站為 \(mid\) ,那麼就可以將區間 \([i,j]\) 分割成區間 \([i,mid],[mid+1,j]\) ,然後列舉四個端點音調的即可,也要保證資料合法。
\[f(i,j,x,y)=\sum f(i,mid,x,a)\times f(mid+1,b,y)
\]其中 \(|a-b|\geq x\) 或者 \(a=0,b\not=0\) 或者 \(a\not= 0,b=0\)
並且 \(x=0,a\not=0\) 且 \(x\not= 0,a=0\) (因為 \(x,a\) 同一輛車)
最後注意一些細節就可以了。
演算法複雜度是 \(\theta \left( n^2m^4+n\right)\) 的,雖然可以優化成 \(\theta \left( n^2m^3+n\right)\) 但是因為我懶所以我就不寫了。
最後記得輸出 \(m^x \mod 43621789\) ,記得加上快速冪和 long long。
描寫火車站場景 關於描寫火車站的句子
關於描寫火車站的句子 關於描寫火車站的句子 所以至今,我仍很愛乘火車,臥鋪,靠在枕頭上看書,沉沉 睡去,聽鐵軌一層一層的蕩漾,在記憶中昏暗地穿行,如果我愛 誰,我們一定會乘火車去很遠的地方,一路都是風景,包括思考 時呈現出來的風景。有時候站在路邊看著人來人往,會覺得城市比沙漠還要荒涼。每個人都靠的那...
火車站排程問題
題目要求 1.問題 一列火車要將n節車廂分別送往n個車站,車站按照n,n 1,1的編號次序經過車站。假設車廂的編號就是其目的地車站的編號。2.要求 給定乙個任意的車廂排列次序。重新排列車廂,使其按照從1到n的次序排列。規定重排排程時車廂只能從入軌到緩衝鐵軌,或者從緩衝鐵軌到出軌。include in...
zcmu Problem H wjw的火車站
題目 time limit 1 sec memory limit 128 mb submit 112 solved 59 submit status web board wjw最近新開了一座火車站.沒錯就是火車站,因為寒假過完同學們都該返校了,所以他準備大幹一場,但是這裡有乙個問題,因為wjw的資金...