概率期望题(期望 DP)做题记录
主要思想
在随机游走中,一般设 表示当前状态到最终状态的期望是多少,从后往前推(或这说用 dfs
记忆化搜索来实现递推):
最终从 到 的期望就是 。
P3830 [SHOI2012]随机树
难点在于第二问:生成树的期望深度。
不 wei zhuo 捏,设 表示已经有了 个叶子结点,深度大于 的概率。
考虑枚举一棵子树的大小,转移方程如下:
上面分子的部分就是加到一棵子树的概率减去重复的情况,然而我们发现这样仍然有重复情况。
考虑每一种深度情况,即左右子树分别为 的情况的概率,可以将整棵树用加点方式 类似的序列表示出来。
它是一个有 个 和 个 组成的操作序列,那么总共有 中不同的序列。
考虑计算生成一棵 个点的数的方案数:第一次只有 中选择,第二次有 种选择,……那么方案数就是 。
同理,给定左右子树大小,生成树的方案数是 的。
个上面的式子结合起来会发现方案数等于 ,竟然与 无关!也就是说,无论左右子树到底多大,方案数都是相同的,所以有 。
P3239 [HNOI2015]亚瑟王
写了两个假算,终于改对了。
首先肯定考虑将每张牌打出的概率算出来,每一轮考虑过来。
一开始打的假算考虑的是计算在当前面对第 轮第 张牌时,这一轮前面的牌都没有选择,自己选择的概率。
发现这样在前面的牌被轮空的时候,难以计算选择这张牌的概率,所以需要记录前面被轮空了几张牌。
记 表示在整一局游戏中,在前 张牌中,选择了 张牌的概率。
面临第 张牌,前面已经选择了 张牌时,选择 的概率为:
意思是前面有 次面临 的机会都没有选择,这一次选择了。每次算完概率后直接累加答案。
数组的转移方程为:
初始状态:。目标状态:整个数组。
每次计算幂会增加一大把常数,可以预处理 的幂次,复杂度 转移。
本文作者:EricQian's Blog
本文链接:https://www.cnblogs.com/EricQian/p/16115226.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步