Hoping for the best but|

EricQian06

园龄:4年6个月粉丝:24关注:43

2022-04-08 08:44阅读: 53评论: 0推荐: 1

概率期望题(期望 DP)做题记录

主要思想

随机游走中,一般设 dp 表示当前状态到最终状态的期望是多少,从后往前推(或这说用 dfs 记忆化搜索来实现递推):

dpu=Emove+vSvpvpv×dpv

最终从 1n 的期望就是 dp1

P3830 [SHOI2012]随机树

难点在于第二问:生成树的期望深度。

不 wei zhuo 捏,设 dpi,j 表示已经有了 i 个叶子结点,深度大于 j 的概率。

考虑枚举一棵子树的大小,转移方程如下:

dpi,j=k=1i1dpk,j1+dpik,j1dpk,j1×dpik,j1i1

上面分子的部分就是加到一棵子树的概率减去重复的情况,然而我们发现这样仍然有重复情况。

考虑每一种深度情况,即左右子树分别为 (1,i1),(2,i2),,(i1,1) 的情况的概率,可以将整棵树用加点方式 LRLLRRLRLL 类似的序列表示出来。

它是一个有 kLikR 组成的操作序列,那么总共有 (i2)!(k1)!(ik1)! 中不同的序列。

考虑计算生成一棵 n 个点的数的方案数:第一次只有 1 中选择,第二次有 2 种选择,……那么方案数就是 (n1)!

同理,给定左右子树大小,生成树的方案数是 (k1)!(ik1)! 的。

个上面的式子结合起来会发现方案数等于 (i2)!,竟然与 k 无关!也就是说,无论左右子树到底多大,方案数都是相同的,所以有 1i1

P3239 [HNOI2015]亚瑟王

写了两个假算,终于改对了。

首先肯定考虑将每张牌打出的概率算出来,每一轮考虑过来。

一开始打的假算考虑的是计算在当前面对第 i 轮第 j 张牌时,这一轮前面的牌都没有选择,自己选择的概率

发现这样在前面的牌被轮空的时候,难以计算选择这张牌的概率,所以需要记录前面被轮空了几张牌。

dpi,j 表示在整一局游戏中,在前 i 张牌中,选择了 j 张牌的概率。

面临第 i 张牌,前面已经选择了 c 张牌时,选择 i 的概率为:

dpi1,c×(1pi)rc1×pi

意思是前面有 rc1 次面临 i 的机会都没有选择,这一次选择了。每次算完概率后直接累加答案。

dp 数组的转移方程为:

dpi,c=dpi1,c×(1pi)rc+dpi1,c1×(1(1pi)rc+1)

初始状态:dp0,0=1.0。目标状态:整个数组。

每次计算幂会增加一大把常数,可以预处理 (1pi) 的幂次,复杂度 O(Tnr) 转移。

本文作者:EricQian's Blog

本文链接:https://www.cnblogs.com/EricQian/p/16115226.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   EricQian06  阅读(53)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起