每日一水第32弹

http://codeforces.com/problemset/problem/235/B

#include <bits/stdc++.h>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using namespace std;
int main()
{
    int n;
    cin >> n;
    double prefix = 0, ret = 0, p;
    //prefix 以i结尾的且是O的区间的期望个数,每个区间可以贡献2
    //n*n = 2 * C(n, 2) + n;
    for(int i = 0; i < n; i++) {
        cin >> p;
        ret  += prefix * p * 2 + p;
        prefix = prefix * p + p;
    }
    cout << setprecision(10) << fixed <<ret;
    return 0;
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注