1. 程式人生 > 實用技巧 >[六省聯考2017]分手是祝願 題解

[六省聯考2017]分手是祝願 題解


期望看起來無從下手,先嚐試尋找某個局面的最優解法,就是最少花多少步可以全變 0

首先觀察到一個性質,每個開關至多操作 \(1\),因為操作 \(2k\) 次等於沒操作,操作 \(2k+1\) 次等於操作 \(1\) 次,這樣就把答案限制在了 \(\leq n\)
這是所有這種一個開關控制多個燈改變亮暗情況的點燈型別的題的共有性質。

但是這樣還是不能做,於是觀察開關 \(i\),改變的是 \(i\) 的所有約數,有的燈可以被多個開關影響到,但是 \(n\) 號燈一定只有 \(n\) 號開關能影響,因為 \(n\) 已經是最大的數了,不可能有它的倍數。

於是 \(n\) 號開關是操作還是不操作,直接就定下來了。

這樣以後 \(n-1\) 號開關是否操作,也能確定,以此類推,每個開關操作與否直接被確定。
大多數點燈題都是能找到這樣一個只被一個開關控制的燈的切入點的。

然後我們發現,到這一步之後,問題被轉化了,有 \(n\) 個數,其中 \(m\) 個是 \(0\),剩下的是 \(1\),每次等概率隨機選取一個數,將它變為另一個狀態,求使得所有數中 \(1\) 的個數小於等於 \(k\) 的期望步數。而且這隻和 \(1\)數量有關了,和哪幾個開關是 \(1\) 無關。

期望一般考慮倒推,設 \(dp_i\) 為當前有 \(i\)\(1\) 時,期望還需要多少步才能變成全 \(0\)

\(i\leq k\)

\(dp_i=i\)
否則 \(dp_i=\frac{i}{n}dp_{i-1}+\frac{n-i}{n}dp_{i+1}+1\)

直接高斯消元不可行,但是這個式子看起來可以遞推。

\[i\times dp_i+(n-i)\times dp_i=i\times dp_{i-1}+(n-i)\times dp_{i+1}+n \]

\[i\times (dp_{i}-dp_{i-1})= (n-i)\times (dp_{i+1}-dp_{i})+n \]

\[dp_{i}-dp_{i-1}=\frac{n-i}{i}\times (dp_{i+1}-dp_{i})+\frac{n}{i} \]

還需要一個邊界條件:\(dp_{n}-dp_{n-1}=1\)
就可以遞推了。

最後 \(dp_m\) 就是答案。

程式碼不貼了。