给定一个长度为n的01串,第i个位置有ai的概率为1,最终得分为01串中所有连在一起1的长度的立方和,求得分的期望
题解
- 一开始不知道由i到i+1怎么转移,因为前i个连续的1的个数不确定,但我们可以算前i个连续1的期望个数,问题便解决了。
- 定义$f_i$: 前i位连续1的期望个数,考虑第i-1到第i位的转移
- 若第i位是1,则多出的贡献为$(f_{i-1}+1)^3-f_{i-1}^3=3f_{i-1}^2+3f_{i-1}+1$,则前 $i$ 位的分数期望为$dp_i=dp_{i-1}+(3f_{i-1}^2+3f_{i-1}+1)·p_i$( $p_i$ 为 $1$ 的概率)
- 分别维护 $ f_i$ 和 $f_i^2$ ,其中$f_i=(f_{i-1}+1)·p_i$,$f_i$可以通过期望的线性性质推出,$f_(i+1)^2=f_i^2+2f_i+1$,将 $i$ 替换为 $(i-1)$ 即可算出 $f_i$。
- 注意期望的平方和平方期望的区别。
代码
1 |
|