1. 程式人生 > >bzoj 4318 OSU! —— 期望DP

bzoj 4318 OSU! —— 期望DP

geo print 期望 names clas online detail 第一次 cstring

題目:https://www.lydsy.com/JudgeOnline/problem.php?id=4318

期望DP,因為平方的期望不等於期望的平方,所以用公式遞推;

第一次推錯了囧,還是看這位的博客改過來的:https://blog.csdn.net/Clove_unique/article/details/62422100

代碼如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const maxn=1e5+5;
int n;
double f[maxn],f2[maxn],f3[maxn],p[maxn],ans[maxn];
int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%lf",&p[i]); f[i]=(f[i-1]+1)*p[i]; f2[i]=(f2[i-1]+2*f[i-1]+1)*p[i]; // f3[i]=(3*f2[i-1]+3*f[i-1]+1)*p[i]; // ans[i]=ans[i-1]+f3[i]*p[i];// ans[i]=ans[i-1]*(1-p[i])+(ans[i-1]+3*f2[i-1
]+3*f[i-1]+1)*p[i];// } printf("%.1lf\n",ans[n]); return 0; }

bzoj 4318 OSU! —— 期望DP