CF1392H ZS Shuffles Cards(概率)


CF1392H ZS Shuffles Cards(概率)

題目大意

\(n + m\) 張不同的牌,其中有 n 張牌是編號 \(1 \to n\) 的,剩下的 m 張牌是鬼牌,但有標號。

現在我們對牌隨機打亂以后做如下兩個操作,且每個操作耗時 1:

如果牌頂不是鬼牌,那么把牌頂的牌的編號加入集合 s,然后把牌放到一邊

如果第一張牌是鬼牌,那么先看看集合 s 是不是包含 1 到 n 的所有元素,如果是就結束游戲,否則隨機打亂所有的牌(包括之前放到一邊的牌),繼續游戲。

求游戲結束的期望時間

數據范圍

\[1 \le n, m \le 2 \times 10^6 \]

解題思路

官方題解是個大麻煩思路,但評論區里有神仙給出了神奇而簡潔的做法,下面簡單介紹一下

首先你發現即使你已經湊夠了 n 個元素,但沒有抽到鬼牌仍不能結束游戲,而我們可以求出一次洗牌操作次數的期望值,然后求出期望下洗牌多少次即可

先求出操作次數的期望,對於每一張牌放到第一張鬼牌的前面的概率是 \(\frac {1}{m+1}\),因此總共的期望就是 \(\frac n{m+1}+1\)

考慮期望下洗牌多少次,正着不好做?我們用 \(min-max\) 容斥,答案就是 \(\sum_{i=1}^n{n \choose i}(-1)^{i+1}g_i\)\(g_i\) 表示抽到第一張的期望次數

顯然有 \(g_i = \sum_{j=0}[tim > j] = \sum_{j=0}(\frac {m}{m+i})^j=\frac {m+i}{i}\), 答案也可以輕松算出了

但正着真的不好做嗎?神仙給出了更簡潔的做法,設 \(f_i\) 表示還要湊 n 個的期望次數

如果本次沒撈着,那么期望是 \(\frac {m}{m + i} \times f_i + 1\),否則就是 \(\frac {i}{m+i} \times f_{i-1}\)

化簡方程得到 \(f_i= \frac {m}{i} + f_{i-1}\) 邊界條件是 \(f_0 = 1\),得到 \(f_n = \sum_{i=1}^n\frac 1i\)

最后的一個問題就是為什么 \(\sum_{i=1}^n \frac 1i = \sum_{i=1}^n {n \choose i} (-1)^{i+1}\frac {1}{i}\)

這個問題是上面正推和倒推的兩個式子的化簡形式,請教了 ztb 學長,可以用數學歸納法證明,但 ei 說有積分證明的方法,我不是很會,路過的大佬可以教教我 😁


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM