您的位置:首页 > 其它

【BZOJ】4318 OSU! 期望

2017-12-05 19:17 197 查看
题目传送门

期望什么的好迷啊……我觉得我应该去补一补数学的……

考虑第i次操作,设当前操作前末尾最长的1的长度为x。

如果操作失败,贡献为0。

如果操作成功,贡献为(x+1)3−x3=3x2+3x+1。

那么期望为(1−pi)×0+pi×(3x2+3x+1)。

但是我们并不知道x具体为多少,于是可以维护x和x2的期望,用来求出第i次操作的贡献。

附上AC代码:

#include <cstdio>
using namespace std;

const int N=1e5+10;
double x,f
,l
,l2
;
int n;

int main(void){
scanf("%d",&n);
for (int i=1; i<=n; ++i){
scanf("%lf",&x);
l[i]=(l[i-1]+1)*x;
l2[i]=(l2[i-1]+2*l[i-1]+1)*x;
f[i]=f[i-1]+(3*l2[i-1]+3*l[i-1]+1)*x;
}
return printf("%.1lf\n",f
),0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: