[Tkey] OSU!
更新的题解可看 此处
你说得对但是 恐怖日本病毒会自动向你的电脑中下载 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)\) 推出 \(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}\).
可以仿效推出转移方程:(因为只剩一种情况了,好推)
\]
\]
带入求解即可.
代码
#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!的更多相关文章
- .net源码分析 – Dictionary<TKey, TValue>
接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blo ...
- .net源码分析 - ConcurrentDictionary<TKey, TValue>
List源码分析 Dictionary源码分析 ConcurrentDictionary源码分析 继上篇Dictionary源码分析,上篇讲过的在这里不会再重复 ConcurrentDictionar ...
- C# KeyValuePair<TKey,TValue>的用法-转载
C# KeyValuePair<TKey,TValue>的用法.结构体,定义可设置或检索的键/值对.也就是说我们可以通过 它记录一个键/值对这样的值.比如我们想定义一个ID(int类型)和 ...
- .NET中Dictionary<TKey, TValue>浅析
.NET中Dictionary<TKey, Tvalue>是非常常用的key-value的数据结构,也就是其实就是传说中的哈希表..NET中还有一个叫做Hashtable的类型,两个类型都 ...
- .net学习笔记----有序集合SortedList、SortedList<TKey,TValue>、SortedDictionary<TKey,TValue>
无论是常用的List<T>.Hashtable还是ListDictionary<TKey,TValue>,在保存值的时候都是无序的,而今天要介绍的集合类SortedList和S ...
- IDictionary<TKey, TValue> vs. IDictionary
Enumerating directly over an IDictionary<TKey,TValue>returns a sequence of KeyValuePair struc ...
- Dictionary<TKey, TValue> 类
C# Dictionary<TKey, TValue> 类 Dictionary<TKey, TValue> 泛型类提供了从一组键到一组值的映射.字典中的每个添加项都由一个值及 ...
- 线程安全集合 ConcurrentDictionary<TKey, TValue> 类
ConcurrentDictionary<TKey, TValue> 类 [表示可由多个线程同时访问的键/值对的线程安全集合.] 支持 .NET Framework 4.0 及以上. 示例 ...
- 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!
Osu! Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5078 Mean: 略. analyse: 签到题,直接扫一遍就得答 ...
- UVALive 7270 Osu! Master (阅读理解题)
题目:传送门. 题意:阅读理解题,是一个osu的游戏,问得分.把题目翻译过来就是如果出现S或者BC后面跟的是1,ans就加1. #include <iostream> #include & ...
随机推荐
- 解决react native打包apk文件安装好之后进入应用闪退的问题
这个是我一个前端前辈帮我弄的,自己解决的时候不行,她去官网找了相关的问题,然后发给我的. react-native android 的release安装包运行闪退,但是debug运行正常 环境:0.6 ...
- 题解:CF1957A Stickogon
CF1957A Stickogon 题意 题意十分简单,给予你 \(n\) 个棍子,问这些棍子可以构成多少个正多边形. 思路 说是可以构成多少个正多边形,所以我们可以用边最少的正多边形等边三角形来计数 ...
- CF 1927
G link 定义\({{dp_i}_j}_k\)为考虑完第i个点,最左边没有染色的点为\(j\),最右边没有染色的点为\(k\)的最小数量. 考虑转移(用自己更新别人) 如果不用\(i\),直接转移 ...
- LeetCode455.分发饼干
LeetCode题目链接:https://leetcode.cn/problems/assign-cookies/description/ 题目叙述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干 ...
- 8、IDEA集成Git
8.1.配置Git忽略文件 8.1.1.忽略文件的原因 在使用 IDE 工具时,会自动生成一些和项目源码无关的文件,所以可以让 Git 忽略这些文件. 此外,把这些无关文件忽略掉,还能够屏蔽不同 ID ...
- 【SpringBoot】Re 01 补充学习
对SpringBoot后续的再补充学习: 使用IDEA创建项目不勾选任何组件 默认的POM结构: <?xml version="1.0" encoding="UTF ...
- 【转载】 DQN玩Atari游戏安装atari环境bug指南
版权声明:本文为CSDN博主「好程序不脱发」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/ningmengzh ...
- Redis源码安装(Linux环境)
下载源码: wget https://download.redis.io/redis-stable.tar.gz 解压: tar -xzvf redis-stable.tar.gz 编译&安装 ...
- 强化学习的REIINFORCE算法和交叉熵RL算法
注意: 本文并不讲REINFORCE算法,而是讲强化学习的交叉熵算法,关于REINFORCE算法可以参看: https://www.cnblogs.com/devilmaycry812839668/p ...
- 亚信科技基于 Apache SeaTunnel 的二次开发应用实践
亚信科技在Apache SeaTunnel的实践分享 自我介绍 各位同学好,很荣幸通过Apache SeaTunnel社区和大家进行分享交流.我是来自亚信科技的潘志宏,主要负责公司内部数据中台产品的开 ...