思路:
直接期望DP,先把到i的期望长度算出,然后dp时去掉一位算答案
c o d e code code
#include<iostream>
#include<cstdio>
using namespace std;
int n;
double a[1010010], f[1010100], k[1010100];
double ans;
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%lf", &a[i]), a[i]=0.01*a[i], k[i]=(k[i-1]+1)*a[i];
for(int i=1; i<=n; i++)
f[i]=f[i-1]+a[i]*((k[i-1]+1)*(k[i-1]+1)-k[i-1]*k[i-1]);
printf("%.1lf", f[n]);
return 0;
}