G题题解

这题可以直接按照传统概统的方法,求出密度函数,然后利用期望的定义求,但是求出来似乎有点麻烦,我们可以利用求期望的一个结论:对于非负的连续性随机变量,设为其分布函数,则

证明方法也很简单,就是简单的二重积分交换次序,参考链接

这里设n个随机变量分别为,则令,我们的目标就是求的期望

显然

因此答案就是

这里积分上限取是因为最早发生的事件一定不可能超过这个值。

我们可以直接包算出被积函数(一个次多项式)的前面的系数,然后直接对每一项积分求和即可。

代码:

void solve()
{
    int n,m=1;
    cin >> n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)m*=qmi(a[i],mod-2),m%=mod;
    int mn=*min_element(a+1,a+1+n);
    vector<int>c(n+10);
    c[0]=1;//多项式系数
    for(int i=1;i<=n;i++){
        vector<int>t(n+10);    
        t[0]=c[0]*a[i]%mod;;
        for(int j=1;j<i;j++)t[j]=((c[j]*a[i]-c[j-1])%mod+mod)%mod;
        t[i]=-c[i-1];
        t[i]=(t[i]%mod+mod)%mod;
        c=t;
    }
    int res=0;
    for(int i=0;i<=n;i++)res+=c[i]*qmi(mn,i+1)%mod*qmi(i+1,mod-2)%mod,res%=mod;
    res*=m,res%=mod;
    cout<<res<<endl;
}
全部评论
Hey brother, your explanation in this solution is amazing!
点赞 回复 分享
发布于 2024-01-15 14:39 四川

相关推荐

不愿透露姓名的神秘牛友
今天 12:18
点赞 评论 收藏
分享
S_Holmes:一想到我苦苦追求的迪子私下里却是985的马子,我的心就在滴血😭😭😭
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:25
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务