1. 程式人生 > 實用技巧 >Luogu P6689 序列

Luogu P6689 序列

Luogu 月賽 1C P6689 序列

給定 \(N,K\),初始有一個長度為 \(N\) 的字串 \(S\) 為全 (,進行若干次操作直到 \(K=0\)

  1. \([1,N]\) 中隨機一個數,將此位置上的括號取反。
  2. 如果本次隨機使得 ( 的數量減少了 \(1\),那麼給 \(K\)\(1\)

求最長合法括號序列的期望。

\(\rm Sol:\)

先做一點預處理,我們發現,如果知道最後序列中被翻轉了 \(k\) 個的概率,那麼出現在每個位置的概率都是相同的。

考慮通過 dp 來統計這個問題,我們發現 ) 的每次增加都意味著 \(K\) 減少了 \(1\),於是不妨設 \(f_{i,j}\)

表示當前 \(K=i\),且序列中有 \(j\)) 的概率,那麼轉移僅有兩種:\(j\) 變小,或者 \(i\) 變小且 \(j\) 變大。

接下來考慮序列中有 \(k\)) 的情況下最長合法括號序列長度的期望。

我們不妨假定我們已經知道了序列的模樣,我們如何計算其最長括號序列,我們給所有左括號賦權值 \(1\),右括號賦權值 \(−1\),令 \(