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