码迷,mamicode.com
首页 > 其他好文 > 详细

Luogu P1654 OSU!

时间:2020-11-12 14:23:34      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:define   cpp   cst   math   names   期望   clu   class   code   

快CSP了写点联赛题水水博客不过分吧……

首先立方的期望和显然不是期望和的立方,那么我们考虑从一个差分的角度来看

\(x_1,x_2,x_3\)分别表示到当前位置为止,连续长度的期望和,平方期望和,立方期望和

考虑若当前位置为\(1\),对立方期望和的贡献为\((x+1)^3=x^3+3x^2+3x+1\),乘上概率就是\(x_3=p_i\times (x_3+3x_2+3x_1+1)\)

对平方期望和以及期望和的处理方式显然是同理的,然后我们考虑在某个位置断开可以使之前的答案被统计,因此\(ans+=(1-p_i)\times x_3\),并在最后一个位置结束后记得加上最后一段的贡献

#include<cstdio>
#define RI register int
#define CI const int&
using namespace std;
int n; double p,ans,x1,x2,x3;
int main()
{
	RI i; for (scanf("%d",&n),i=1;i<=n;++i)
	scanf("%lf",&p),ans+=(1-p)*x3,x3=p*(x3+3*x2+3*x1+1),x2=p*(x2+2*x1+1),x1=p*(x1+1);
	return printf("%.1lf",ans+x3),0;
}

Luogu P1654 OSU!

标签:define   cpp   cst   math   names   期望   clu   class   code   

原文地址:https://www.cnblogs.com/cjjsb/p/13912775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!