【BZOJ】4318 OSU! 期望

80 篇文章 1 订阅
1 篇文章 0 订阅

题目传送门

期望什么的好迷啊……我觉得我应该去补一补数学的……

考虑第 i 次操作,设当前操作前末尾最长的1的长度为 x

  1. 如果操作失败,贡献为0

    • 如果操作成功,贡献为 (x+1)3x3=3x2+3x+1
    • 那么期望为 (1pi)×0+pi×(3x2+3x+1)

      但是我们并不知道 x 具体为多少,于是可以维护x x2 的期望,用来求出第 i <script type="math/tex" id="MathJax-Element-32">i</script>次操作的贡献。

      附上AC代码:

      #include <cstdio>
      using namespace std;
      
      const int N=1e5+10;
      double x,f[N],l[N],l2[N];
      int n;
      
      int main(void){
          scanf("%d",&n);
          for (int i=1; i<=n; ++i){
              scanf("%lf",&x);
              l[i]=(l[i-1]+1)*x;
              l2[i]=(l2[i-1]+2*l[i-1]+1)*x;
              f[i]=f[i-1]+(3*l2[i-1]+3*l[i-1]+1)*x;
          }
          return printf("%.1lf\n",f[n]),0;
      }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值