zoukankan      html  css  js  c++  java
  • Luogu_P1365 WJMZBMR打osu! 期望

    Luogu_P1365 WJMZBMR打osu!

    期望


    题目链接
    题意很容易理解
    设之前的连续的'o'个数已经为(x)
    这次也为'o'
    ((x+1)^2-x^2=2*x+1)
    那么每次的成功的贡献就是(2*x+1)
    假如只有'o'和'x'就很好解决了
    但是还有'?'求期望
    就设(p[i])为当前这位成功的概率
    明显'o'就是(p[i]=1)
    'x'就是(p[i]=0)
    '?'就是(p[i]=0.5)
    那就把每次的贡献乘(p[i])就是每次的期望贡献了


    代码如下:
    (不要忘记上面的(x)是上一位的(x),所以在写的时候应该是((2*x[i-1]+1)*p[i])

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e6+10;
    int n;
    double p[maxn],f[maxn],x[maxn];
    string s;
    int main()
    {
        scanf("%d",&n);cin>>s;
        for(int i=0;i<n;i++){
            if(s[i]=='o') p[i+1]=(double)1.0;
            if(s[i]=='x') p[i+1]=(double)0.0;
            if(s[i]=='?') p[i+1]=(double)0.5;
        }
        for(int i=1;i<=n;i++){
            f[i]=f[i-1]+(2.0*x[i-1]+1.0)*p[i];
            x[i]=(x[i-1]+1.0)*p[i];
        }
        printf("%.4lf
    ",f[n]);
        return 0;
    }
    
  • 相关阅读:
    yii---模型的创建
    yii---控制器的创建
    yii的安装
    windows下安装composer
    wpgcms---列表页数据渲染
    Twig---基本使用
    wpgcms---详情页面数据怎么渲染
    Twig---的使用
    vue---指令怎么写
    vue---设置缩进为4个空格
  • 原文地址:https://www.cnblogs.com/ChrisKKK/p/11711934.html
Copyright © 2011-2022 走看看