传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4318
那个"立方"丢掉了……看了样例才看懂……
考虑增量维护答案,每增加一个维护期望长度,期望长度^2,期望得分就可以了
和3450如出一辙
Code:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
double f[maxn],g[maxn],g2[maxn];
int main(){
int n;scanf("%d",&n);
for(int i=1;i<=n;i++){
double x;scanf("%lf",&x);
g[i]=(g[i-1]+1)*x;
g2[i]=(g2[i-1]+2*g[i-1]+1)*x;
f[i]=f[i-1]+(3*g2[i-1]+3*g[i-1]+1)*x;
}printf("%.1lf\n",f[n]);
return 0;
}