您的位置:首页 > 其它

期望(二)—— 概率与期望 DP 学习笔记

2017-12-07 11:11 507 查看

概率与期望 DP 总结 —— By sengxian

我们来跟着这篇博客来学习一下好辣。

只会给出一些自己的理解。

例一
BZOJ 3036

方法一:直接定义期望状态



全期望公式:E(Y)=∑nP(X=xi)E(Y|X=xi)

这道题的终点很明确,那就是走到
n
即停止。对于期望 DP,我们一般采用逆序的方式来定义状态,即考虑从当前状态到达终点的期望代价。因为在大多数情况下,终点不唯一,而起点是唯一的。

这个逆序的应用还是很巧妙的。最后输出应该是
dp(1)


考虑一个点的答案是由后继点的答案得到的,而且我们要的是第一个点的答案,而
n
号点的期望值肯定是
0


很显然我们应该从后往前推导

所以边就建成反边

为了在一张图里面倒推,而且还是
DAG
,很容易想到拓扑序

就倒着用拓扑序逆推就好了



方法二:利用期望的线性性质

根据期望的线性性质,
E(X+Y) = E(X) + E(Y)
。所以另外一种求期望的方式是分别求出每一种代价产生的期望贡献,然后相加得到答案。

因为这种方法计算答案十分的便捷,而且适用范围广,所以这种『利用期望的线性性质,单独计算贡献的方法』是我们计算期望首选的方法。

例二
Codeforces 518D

方法一:直接定义期望状态

在本题这样一个情况中,方法一是用不了的,因为我们的结束状态不明确



方法三:使用期望的定义计算





方法二:利用期望的线性性质

延续方法三的 DP,我们不妨将状态之间的转移抽象成边,只不过只有
dp(i, j)
dp(i + 1, j + 1)
的边才有为
1
的边权,其余都为
0


因为这个 DP 涵盖了所有可能出现的情况,所以我们仍然可以利用期望的线性性质,在刷表的过程中进行计算答案。

例三、例四

因为状态太多,那么就可以根据期望的线性性质,单独算每一个字符的贡献。

总结

(请看这里!↓

期望 DP 一般来说有它固定的模式。

一种模式是直接 DP,定义状态为到终点期望,根据全期望公式等,通常采用逆序计算得到答案。

一种模式是利用期望的线性性质,对贡献分别计算,这种模式一般要求我们求出每种代价的期望使用次数,而每种代价往往体现在 DP 的转移之中。

还有一种模式是可以直接使用期望的定义计算。

最后的两个例题是典型的分离变量,用期望的线性性质计算答案的例子,如果状态过于巨大,那么就得考虑分离随机变量了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: