火車站 題解

2022-07-06 16:12:10 字數 2425 閱讀 1312

題目傳送門

有乙個奇奇怪怪的火車站,奇奇怪怪的站長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的資金...