期望dp。

考虑问题的简化版:一个数列有n个数,每位有pi的概率为1,否则为0。求以每一位结尾的全为1的后缀长度的期望。

递推就好了。

l1[i]=(l1[i-1]+1)*p[i]+0*(1-p[i]);

再考虑一发:一个数列有n个数,每位有pi的概率为1,否则为0。求以每一位结尾的全为1的后缀长度的平方的期望。

平方的期望显然不等于期望的平方。但是平方的期望也是可以递推的。

l2[i]=(l2[i-1]+2*l1[i-1]+1)*p[i]+0*(1-p[i]);

l3立方同理。

再来考虑问题,第i位的答案与第i-1位的答案的差只与后缀全为1的串有关,所以我们只需要计算前一位后缀全为1的串后再加一个1的值减掉前一位的值就行了。

ans[i]=(ans[i-1]+l3[i]/p[i]-l3[i-1])*p[i]+ans[i-1]*(1-p[i]);

l3[i]/p[i]代表的其实是确定了i位为1后的i位的期望,就直接用l1l2求就好,发现顺便把上式中的l3[i-1]消了,所以不需要求l3数组(貌似三个都不需要)。

一路递推ans数组即可。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 using namespace std;
 6 const int dian=100005;
 7 double aa[dian],ans[dian],l1[dian],l2[dian];
 8 int n;
 9 int main(){
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++)
12         scanf("%lf",&aa[i]);
13     for(int i=1;i<=n;i++)
14         l1[i]=(l1[i-1]+1)*aa[i];
15     for(int i=1;i<=n;i++)
16         l2[i]=(l2[i-1]+2*l1[i-1]+1)*aa[i];
17     for(int i=1;i<=n;i++)
18         ans[i]=ans[i-1]+(3*l2[i-1]+3*l1[i-1]+1)*aa[i];
19     printf("%.1f",ans[n]);
20     return 0;
21 }

转载于:https://www.cnblogs.com/dugudashen/p/6222145.html

bzoj 4318 OSU!相关推荐

  1. bzoj 4318: OSU!(概率DP)

    4318: OSU! Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 910  Solved: 709 [Submit][Status][Discuss ...

  2. bzoj 4318 osu 【三次方问题】【dp】

    二次方的问题可以说是经典了,三次方yy一下也就出来了. (x+1)^3=x^3+3x^2+3x+1 所以维护x^2 x的期望值.注意x^2的期望值不等于x期望值的平方. #include<cst ...

  3. BZOJ 4318 OSU! 期望DP

    题目大意:给定一个长度为 n n的01串,第ii个位置有 ai a_i的概率为 1 1,最终得分为01串中所有连在一起1的长度的立方和,求得分的期望 假如这个01串使确定的,考虑每新增一个位置,如果这 ...

  4. 【BZOJ - 4318】OSU!(概率dp,数学期望,期望的线性性)

    题干: osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串. ...

  5. OSU!(bzoj 4318)

    Description osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1 ...

  6. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  7. DP(动态规划)进阶

    一些非典型的动态规划串讲: •状态压缩进阶 •期望概率进阶 •数位DP •换根DP •基环树DP 主要是介绍思想,要提升必须靠练习 状态压缩  •什么是状态压缩呢 •当一道题的状态很复杂,但是很少的时 ...

  8. 2021牛客暑期多校训练营4 B-Sample Game(概率DP)

    B-Sample Game ding_ning123大佬题解 注:上述题解图片来自ding_ning123大佬题解 Code #include<bits/stdc++.h> using n ...

  9. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

最新文章

  1. 为什么说GAN很快就要替代现有摄影技术了?
  2. 如何在python中找到两个日期时间对象之间的时差?
  3. matlab中线型和颜色控制
  4. 关于java的集合类,以及HashMap中Set的用法!
  5. 字体缩放 SignedDistanceField
  6. 【带着canvas去流浪(12)】用Three.js制作简易的MARVEL片头动画(上) #华为云·寻找黑马程序员#
  7. C语言137页答案,综合化学实验答案题库(137页)-原创力文档
  8. 打游戏用什么蓝牙耳机好?英雄联盟手游推荐蓝牙耳机
  9. java随机生成6位流水号,Java生成随机流水号
  10. https免费泛域名证书申请
  11. compositionAPI
  12. 果然发生了,百度一29 岁程序员因“篡改数据”被抓
  13. php 抓取网页图片
  14. python实现触摸精灵功能_触摸精灵lua脚本实现微信群加好友功能
  15. Linux文件目录操作命令 rm
  16. V神最新演讲:万字长文透露以太坊20重大升级!
  17. 蓝桥杯 外卖店的优先级
  18. 鼠标右键转圈圈_电脑一右键就一直转圈怎么办_win10鼠标一点右键就转圈圈的解决方法...
  19. MySQL 查询最好的前/后3条
  20. 百度网盘资源下载加速教学

热门文章

  1. 数据库内容集锦(持续更新)
  2. 知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案
  3. BI和报表等于数据分析?终于有人讲清楚了它们的区别
  4. android 安卓 pc 电脑 通讯,安卓利用Socket和PC通信无法连接?
  5. x3-02 java,Android Studio 3.2.1 - 新项目无法运行
  6. 哪几所大学计算机软件方面是强项,计算机软件工程专业排名靠前的大学是那几所...
  7. rabbitmq php类库,RabbitMQ客户端的PHP库
  8. tensorflow2 目标检测_BJX 系列 小型远距离检测型光电传感器代理报价
  9. 是指能够被程序员看到的计算机系统的属性,计算机组成原理复习范围详细.doc...
  10. poj 3061 Subsequence 尺取法