有 n 个操作,有 Ai 的概率成功,连续成功 x 次 对答案的贡献是 x ^ 3,断掉就要重新记,求期望的答案
( 期望DP )这道题和 bzoj3450 一样,不过要注意的是平方的期望不等于期望的平方!
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX_N = 100005;
int n;
double a[MAX_N], g[MAX_N], g2[MAX_N], f[MAX_N];
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i ++){
scanf("%lf", &a[i]);
g[i] = (g[i - 1] + 1) * a[i];
g2[i] = (g2[i - 1] + 2 * g[i - 1] + 1) * a[i];
f[i] = f[i - 1] + (3 * g2[i - 1] + 3 * g[i - 1] + 1) * a[i];
}
printf("%.1lf\n", f[n]);
return 0;
}
本文介绍了一个概率DP问题:给定一系列操作的成功概率,求连续成功若干次对答案贡献的期望值,并提供了一段C++代码实现。注意平方的期望与期望的平方之间的区别。

被折叠的 条评论
为什么被折叠?



