题解
因为 ((x+1)^3 - x^3 = 3x^2 + 3x + 1) ,则当 (i-1) 位连续的 (1) 长度为 (l) 时,第 (i) 位的贡献为 (3l^2 + 3l + 1) 。
设 (E(i) = E(i-1) + p(i) imes (3l^2 + 3l + 1)) 。答案为 (E(n)) 。对 (l^2) 和 (l) 求期望即可。
即 (l^2 gets (l^2 + 2l + 1) imes p(i),l gets (l + 1) imes p(i)) 。
#include <cstdio>
int n;
double p;
double x1, x2;
double ans;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
scanf("%lf", &p);
ans += (3 * x2 + 3 * x1 + 1) * p;
x2 = (x2 + 2 * x1 + 1) * p;
x1 = (x1 + 1) * p;
}
printf("%.1lf", ans);
return 0;
}