Luogu P1654 OSU!
时间:2019-08-29
本文章向大家介绍Luogu P1654 OSU!,主要包括Luogu P1654 OSU!使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接:Click here
Solution:
定义\(E(x)\)表示在第x位置时的期望得分,考虑\(E(x)\)与\(E(x+1)\)之间的关系
如果\(x+1\)位置为1,则在\(x\)位置结束的连续的1长度都要+1
我们考虑先把\((x+1)^3\)分解,\((x+1)^3=x^3+3x^2+3x+1\)
也就是说对所有之前的极长串,他们都要加上\(3x^2+3x+1\)的贡献
则我们考虑来维护\(x^2\)和\(x\)这两个值的期望
维护\(x\)十分简单,\(Ex_1(i)=p(i)\times (Ex_1(i-1)+1)\),因为是增加值,所以之前的值也都要乘上概率
考虑如何维护\(x^2\),\((x+1)^2=x^2+2x+1\),所以\(Ex_2(i)=p_i\times (Ex_2(i-1)+2Ex_1(i-1)+1)\)
最后就是答案了:\(E(i)=E(i-1)+p(i)\times (3Ex_2(i-1)+3Ex_1(i-1)+1)\)
Code
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int n;
double f1,f2,f3,p[N];
signed main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf",&p[i]);
for(int i=1;i<=n;i++){
f3=f3+p[i]*(3*f2+3*f1+1);
f2=p[i]*(f2+2*f1+1);
f1=p[i]*(f1+1);
}printf("%.1lf\n",f3);
return 0;
}
原文地址:https://www.cnblogs.com/NLDQY/p/11430952.html
- mybatis-plus思维导图,让mybatis-plus不再难懂
- 10(01)总结形式参数,包,修饰符,内部类
- Java的参数传递是值传递还是引用传递
- 通过shell脚本来得到不稳定的执行计划(r4笔记第40天)
- Struts2【OGNL、ValueStack】
- 如何用Python爬虫实现图片自动下载?
- Hibernate【查询详解、连接池、逆向工程】
- Hibernate【缓存】知识要点
- MySQL 存储过程的简单使用
- Hibernate【与Spring整合】
- JAVA容器-自问自答学ArrayList
- 10(02)总结形式参数,包,修饰符,内部类
- IDEA使用总结
- Maven就是这么简单
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据分析师,你是车夫,还是拉车的驴子
- Java常用API(Arrays类)
- Java常用API(Math类)
- Static关键字的使用
- tomcat 并发优化
- Java File类基础解析 使用递归来遍历目录 2
- Java Lambda表达式
- 介绍一款 API 敏捷开发工具
- XSS(跨站脚本攻击)简单讲解
- Java中多线程的使用(超级超级详细)线程池 7
- Python 将土味情话语录设置为桌面壁纸
- Java中多线程的使用(超级超级详细)线程安全原理解析 4
- Java中多线程的使用(超级超级详细) Thead类的使用 3
- Java Properties集合基础解析
- File 类基础解析3 文件过滤器优化