gym102700N

    科技2025-09-02  12

    http://codeforces.com/gym/102700/problem/N gym102700N 题意 给一个长为n的序列 p 1 , p 2 , … … , p n p_1,p_2,……,p_n p1,p2,,pn,其中 p i p_i pi为第 i i i次操作成功的概率,现在将序列随机打乱,求操作失败次数的期望。 说明 题意等价于对序列的每个排列求失败次数期望然后取平均值,但是我现在不会写,下面是搬运的代码。 http://codeforces.com/gym/102700/submission/94439791

    #include <bits/stdc++.h> using namespace std; int main(){ int n; scanf("%d", &n); vector <double> r(n + 1, 0.0); r[0] = 1.0; for(int i = 0; i < n; i++){ double p; scanf("%lf", &p); for(int j = n; j >= 1; j--) r[j] = r[j - 1] * p + r[j] * (1.0 - p); r[0] = r[0] * (1.0 - p); } double res = 0.0; for(int i = 0; i <= n; i++) res += r[i] * (n - i) / (i + 1); printf("%.12f\n", res); return 0; }
    Processed: 0.008, SQL: 8