P8236 魔法的力量 题解

· · 个人记录

题目解法:

考虑一下每个石子被选中的概率。可以看出,到第 i 轮合并之前,还剩下 n-i+1 堆石子,那么显然,第 i 轮合并每一堆石子 j\frac{2}{n-i+1} 的概率被选上。
那么显然,答案就是 (\sum_{i=1}^{n} a_i) \cdot (\sum_{i=2}^{n} \frac{2}{i})

代码:

#include <bits/stdc++.h>
using namespace std;
namespace Main
{
    typedef long double ld;
    int n;
    const int maxn=505;
    ld a[maxn];
    void main()
    {
        scanf("%d",&n);
        ld ans1=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%Lf",&a[i]);
            ans1+=a[i];
        }
        ld ans2=0;
        for(int i=2;i<=n;i++)
        {
            ans2+=ld(2.0)/ld(i);
        }
        printf("%.50Lf",ans2*ans1);
    }
}
int main()
{
    Main::main();
    return 0;
}