更新的题解可看 此处

你说得对但是 恐怖日本病毒会自动向你的电脑中下载 OSU!

题意简述

一个 01 串,每个位置有 \(p_{i}\) 的概率为 \(1\),连续的 \(x\) 个 \(1\) 贡献 \(x^{3}\) 的分数,求总分数期望.

解法

我们考虑将前 \(i\) 位的期望拓展到前 \(i+1\) 位,假设我们已经求出了前 \(i\) 位的期望 \(E(i)\).

拓展的时候有 \(p_{i}\) 的概率为 \(1\),此时的值为 \(E_{3}(i+1)=(E(i)+1)^{3}=E_{3}(i)+3E_{2}(i)+3E(i)+1\) (因为分数是可以直接三次方的,因此我们这么转移),那么这种情况的期望为 \(p_{i}\times E_{3}(i+1)\)

这里的 \((E(i)+1)^{3}\) 的展开实际上用了种比较泛的写法,实际上,关于为什么它展开是 \(E_{3}(i)\) 而不是 \(E(i)^{3}\),是因为我们并不是给 \(E\) 做的三次方,而是给分数做的三次方. 假设我们已经有 \(x\) 个连续的 \(1\) 来贡献 \(x^{3}\) 分,那么再添加一个 \(1\) 时,分数就会变成 \((x+1)^{3}\),由此推导出一个有关贡献分数 \(x^{2},x^{1}\) 的式子.

也有另外 \(1-p_{i}\) 的概率为 \(0\),此时不会有任何变化,即这种情况的期望为 \((1-p_{i})\times E_{3}(i)\)

因此,转移总期望为

\[E^{3}(i+1)=((E(i)+1)^{3}=E_{3}(i)+3E_{2}(i)+3E(i)+1)\times p_{i}+(1-p_{i})\times E_{3}(i)
\]

可以发现这里还有个问题,就是我们没办法通过 \(E_{3}(i)\) 推出 \(E_{2}(i)\) 和 \(E(i)\) (注意,这里的 \(E_{3}\) 并不是单纯的三次方,而是表示连续的 \(x\) 个 \(1\) 贡献 \(x^{3}\) 的分数时的期望,\(E_{2}\) 同理,因此我们推不出来),又注意到我们只有在新加入一个 \(1\) 的时候用到了这样的数据,因此尝试维护一个 \(E(i)\) 表示前 \(i\) 位且第 \(i\) 位为 \(1\) ,并且连续的 \(x\) 个 \(1\) 贡献 \(x^{1}\) 的分数时的期望(因为为 \(0\) 的我们用不到,这样定义方便维护). 同样定义 \(E_{2}\).

可以仿效推出转移方程:(因为只剩一种情况了,好推)

\[E(i+1)=(E(i)+1)\times p_{i}
\]
\[E_{2}(i+1)=(E(i)+1)^{2}\ p_{i}=(E_{2}(i)+2E(i)+1)\times p_{i}
\]

带入求解即可.

代码

#include<bits/stdc++.h>
using namespace std;
long double a[100001],b[100001],f[100001],p[100001];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;++i){
cin>>p[i];
a[i]=(a[i-1]+1)*p[i];
b[i]=(b[i-1]+2*a[i-1]+1)*p[i];
f[i]=f[i-1]*(1-p[i])+(f[i-1]+3*b[i-1]+3*a[i-1]+1)*p[i];
}
printf("%.1Lf",f[n]);
}

[Tkey] OSU!的更多相关文章

  1. .net源码分析 – Dictionary<TKey, TValue>

    接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blo ...

  2. .net源码分析 - ConcurrentDictionary<TKey, TValue>

    List源码分析 Dictionary源码分析 ConcurrentDictionary源码分析 继上篇Dictionary源码分析,上篇讲过的在这里不会再重复 ConcurrentDictionar ...

  3. C# KeyValuePair<TKey,TValue>的用法-转载

    C# KeyValuePair<TKey,TValue>的用法.结构体,定义可设置或检索的键/值对.也就是说我们可以通过 它记录一个键/值对这样的值.比如我们想定义一个ID(int类型)和 ...

  4. .NET中Dictionary<TKey, TValue>浅析

    .NET中Dictionary<TKey, Tvalue>是非常常用的key-value的数据结构,也就是其实就是传说中的哈希表..NET中还有一个叫做Hashtable的类型,两个类型都 ...

  5. .net学习笔记----有序集合SortedList、SortedList<TKey,TValue>、SortedDictionary<TKey,TValue>

    无论是常用的List<T>.Hashtable还是ListDictionary<TKey,TValue>,在保存值的时候都是无序的,而今天要介绍的集合类SortedList和S ...

  6. IDictionary<TKey, TValue> vs. IDictionary

    Enumerating directly over an IDictionary<TKey,TValue>returns a sequence of  KeyValuePair struc ...

  7. Dictionary<TKey, TValue> 类

    C# Dictionary<TKey, TValue> 类 Dictionary<TKey, TValue> 泛型类提供了从一组键到一组值的映射.字典中的每个添加项都由一个值及 ...

  8. 线程安全集合 ConcurrentDictionary<TKey, TValue> 类

    ConcurrentDictionary<TKey, TValue> 类 [表示可由多个线程同时访问的键/值对的线程安全集合.] 支持 .NET Framework 4.0 及以上. 示例 ...

  9. 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!

    Osu! Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5078 Mean: 略. analyse: 签到题,直接扫一遍就得答 ...

  10. UVALive 7270 Osu! Master (阅读理解题)

    题目:传送门. 题意:阅读理解题,是一个osu的游戏,问得分.把题目翻译过来就是如果出现S或者BC后面跟的是1,ans就加1. #include <iostream> #include & ...

随机推荐

  1. Python elasticsearch-py类库基础用法

    实践环境 https://pypi.org/project/elasticsearch/ pip install elasticsearch==7.6.0 离线安装包及依赖包下载地址: https:/ ...

  2. 网络基础 登录对接CAS-跨域导致的一个意想不到的Bug

    登录对接CAS-跨域导致的一个意想不到的Bug 背景描述 业务需求是平台登录,接入Cas验证 问题描述 平台登录页,点击登录方式,跳转Cas登录页,提交登录请求,结果发现,又返回平台登录页: 再次点击 ...

  3. 兼容sentry协议的轻量级监控,glitchtip

    前言 上一篇文章说了重启 sentry 的事 因为过程太折腾了,一度想过放弃 sentry 换成其他比较轻量级的开源监控系统 这不就给我找到了另外俩个 https://glitchtip.com/ h ...

  4. 第一作者解读|我们这篇Nature Communication背后的故事

    2024年7月16日,大暑将至,立秋不远.我们基于Python的转录组学全分析框架的文章--"OmicVerse: a framework for bridging and deepenin ...

  5. 如何实现对ELK各组件的监控?试试Metricbeat

    一.前言 开发排查系统问题用得最多的手段就是查看系统日志,ELK 是 Elastic 公司开源的实时日志处理与分析解决方案,已经为日志处理方案的主流选择. 而在生产环境中,如何针对 ELK 进行监控, ...

  6. 【Spring Data JPA】02 快速上手

    完成一个CRUD - 创建工程导入依赖坐标 - 配置Spring的配置文件 - 配置ORM的实体类,绑定映射关系 - 编写一个符合SpringDataJpa的dao接口 Maven依赖坐标 <p ...

  7. 【OracleDB】 04 DDL

    Create 创建表 创建数据表,语法和MySQL基本一样 演示案例练习: 打开PLSQL,新建一个SQL脚本窗口 编写SQL语句 -- 创建学生信息表 CREATE TABLE tb_student ...

  8. Python的GDAL库绘制多波段、长时序遥感影像时间曲线图

      本文介绍基于Python中的gdal模块,对大量长时间序列的栅格遥感影像文件,绘制其每一个波段中.若干随机指定的像元的时间序列曲线图的方法.   在之前的文章中,我们就已经介绍过基于gdal模块, ...

  9. 强化学习:reward function shaping —— 着陆器(lander)游戏中的奖励函数的设计

    lander 游戏是强化学习问题中常使用的一个游戏场景,不同人对该问题都设置了不同的reward function,一直也没有对该游戏的各种reward function的设计做一个记录,正好看视频看 ...

  10. Python示例——负数的位运算

    平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文. 给出一些位运算的例子: 其中,正数的位运算是最为常 ...