LGCF235B题解

简单期望/fad

题意明确,不说了。

对于高次期望,一个套路的方法是维护低次期望(?)

考虑 dp,设 dp1[i] 为前 i 次点击中 所有连续的 O 的长度之和dp2[i] 为前 i 次点击中 所有连续的 O 的长度的平方和

很明显有:dp1[i]=(dp1[i1]+1])×p[i]

然后能发现,dp2 其实就是 E(len2)

而:E((len+1)2)=E(len2+2×len+1)=E(len2)+2×E(len)+1

但是由于有 p 的概率,再加上这只是 这一段的长度的平方 的期望,所以剩下 1-p 的概率,长度为 dp2[i-1]。

综合起来:

dp1[i]=p[i]×(dp1[i1]+1)

dp2[i]=dp2[i]+p[i]×(2×dp2[i1]+1)

然后可以滚动“数组”,使得空间为常数。

code:

#include<cstdio>
const int M=1e5+5;
double p,dp1,dp2;
int n;
signed main(){
    int i;
    scanf("%d",&n);
    for(i=1;i<=n;++i){
        scanf("%lf",&p);
        dp2+=(2*dp1+1)*p;
        dp1=(dp1+1)*p;
    }
    printf("%.15lf",dp2);
}

本文作者:Prean

本文链接:https://www.cnblogs.com/lmpp/p/15784724.html

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

posted @   Prean  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
var canShowAdsense=function(){return !!0};
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起