概率期望题(期望 DP)做题记录
概率期望題(期望 DP)做題記錄
P3830 [SHOI2012]隨機樹
難點在于第二問:生成樹的期望深度。
不 wei zhuo 捏,設 \(dp_{i,j}\) 表示已經有了 \(i\) 個葉子結點,深度大于 \(j\) 的概率。
考慮枚舉一棵子樹的大小,轉移方程如下:
\[dp_{i,j}=\sum_{k=1}^{i-1}\dfrac{dp_{k,j-1}+dp_{i-k,j-1}-dp_{k,j-1}\times dp_{i-k,j-1}}{i-1} \]上面分子的部分就是加到一棵子樹的概率減去重復的情況,然而我們發現這樣仍然有重復情況。
考慮每一種深度情況,即左右子樹分別為 \((1,i-1),(2,i-2),\dots,(i-1,1)\) 的情況的概率,可以將整棵樹用加點方式 \(LRLLR\dots RLRLL\) 類似的序列表示出來。
它是一個有 \(k\) 個 \(L\) 和 \(i-k\) 個 \(R\) 組成的操作序列,那么總共有 \(\dfrac{(i-2)!}{(k-1)!(i-k-1)!}\) 中不同的序列。
考慮計算生成一棵 \(n\) 個點的數的方案數:第一次只有 \(1\) 中選擇,第二次有 \(2\) 種選擇,……那么方案數就是 \((n-1)!\)。
同理,給定左右子樹大小,生成樹的方案數是 \((k-1)!(i-k-1)!\) 的。
個上面的式子結合起來會發現方案數等于 \((i-2)!\),竟然與 \(k\) 無關!也就是說,無論左右子樹到底多大,方案數都是相同的,所以有 \(\dfrac{1}{i-1}\)。
P3239 [HNOI2015]亞瑟王
寫了兩個假算,終于改對了。
首先肯定考慮將每張牌打出的概率算出來,每一輪考慮過來。
一開始打的假算考慮的是計算在當前面對第 \(i\) 輪第 \(j\) 張牌時,這一輪前面的牌都沒有選擇,自己選擇的概率。
發現這樣在前面的牌被輪空的時候,難以計算選擇這張牌的概率,所以需要記錄前面被輪空了幾張牌。
記 \(dp_{i,j}\) 表示在整一局游戲中,在前 \(i\) 張牌中,選擇了 \(j\) 張牌的概率。
面臨第 \(i\) 張牌,前面已經選擇了 \(c\) 張牌時,選擇 \(i\) 的概率為:
\[dp_{i-1,c}\times (1-p_i)^{r-c-1}\times p_i \]意思是前面有 \(r-c-1\) 次面臨 \(i\) 的機會都沒有選擇,這一次選擇了。每次算完概率后直接累加答案。
\(dp\) 數組的轉移方程為:
\[dp_{i,c}=dp_{i-1,c}\times (1-p_i)^{r-c}+dp_{i-1,c-1}\times \left(1-(1-p_i)^{r-c+1}\right) \]初始狀態:\(dp_{0,0}=1.0\)。目標狀態:整個數組。
每次計算冪會增加一大把常數,可以預處理 \((1-p_i)\) 的冪次,復雜度 \(\mathcal{O(Tnr)}\) 轉移。
總結
以上是生活随笔為你收集整理的概率期望题(期望 DP)做题记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每5分钟抓拍一次人脸每5分钟抓拍一次人脸
- 下一篇: SSL-练习题目:种树 题解