您的位置:首页 > 其它

bzoj 4318 OSU 期望dp

2017-01-13 22:19 423 查看
题目大意:

n个点,每个点i为0或1,为1的概率为a[i]

连续长度为len的1为贡献\(len^3\)的combo得分

求期望得分

分析:

转化为单点贡献\((x+1)^3-x^3=3x^2+3x+1\)

维护combo长度x

\((x+1)^2-x^2=2x+1\)

\((x+1)-x=1\)

注意\(E(x^2)\not=E^2(x)\)

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cctype>
using namespace std;
typedef long long LL;
const int  M=100007;

double a[M];
double l1=0,l2=0,ans=0;
int n;

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