zoukankan      html  css  js  c++  java
  • 【题解】2021牛客暑期多校第四场 B.Sample Game

    2021牛客暑期多校第四场 Sample Game

    题意

    有一个随机数生成器,生成数(x)的概率为(p_x)。现在我们进行如下操作直至结束:

    (1) 随机生成一个数(x)

    (2) 如果已经生成的数中没有比(x)更大的数,则返回操作(1),否则,记当前已经生成的数的个数为(z),则得到(z^2)分,操作结束。

    求得分的期望。

    (2le nle 100)

    题解

    容易发现,如果操作没有停止,则已经生成的数一定是类似于(1,1,2,3,4,5,5...)(按生成顺序排列)这样的非递减序列。设(X)为已经生成的数的个数,则(X)(Bbb{N})上的离散随机变量。记(g_i=P(X>i)),即长度为(i)时还没有停止的概率。下面考虑如何计算(P(X>i)),假设当前长度为(L),数(x)的出现次数为(cnt_x),由于这些数的出现次序是固定的,故有

    [P(X>L)=sumprod_{sum cnt_x=L}p_x^{cnt_x} ]

    ({g_i})对应的生成函数为

    [egin{align} G(x)=sum_{i=0}^{infty}g_ix^i=sum_{i=0}^{infty}P(X>i)x^i=prod_{k=1}^{n}sum_{i=0}^{infty}p_k^ix^i=prod_{k=1}^{n}frac{1}{1-p_kx} end{align} ]

    则得分的期望为

    [egin{align} E&=sum_{i=1}^{infty}P(X=i)i^2\ &=sum_{i=1}^{infty}(P(Xge i)-P(Xge i+1))i^2\ &=sum_{i=0}^{infty}(P(X> i)-P(X> i+1))(i+1)^2\ &=sum_{i=0}^{infty}P(X> i)(i+1)^2-sum_{i=0}^{infty}P(X> i+1)(i+1)^2\ &=sum_{i=0}^{infty}P(X> i)(i+1)^2-sum_{i=1}^{infty}P(X> i)i^2\ &=sum_{i=0}^{infty}P(X> i)(i+1)^2-sum_{i=0}^{infty}P(X> i)i^2\ &=sum_{i=0}^{infty}P(X> i)((i+1)^2-i^2)\ &=sum_{i=0}^{infty}P(X> i)(2i+1)\ &=2G'(1)+G(1).\ end{align} ]

    由于

    [frac{G'(x)}{G(x)}=[ln G(x)]'=[sum_{k=1}^{n}ln frac{1}{1-p_kx}]'=sum_{k=1}^{n}frac{p_k}{1-p_kx}, ]

    [G'(x)=G(x)sum_{k=1}^{n}frac{p_k}{1-p_kx}. ]

    #include <bits/stdc++.h>
    using namespace std;
    using ll=long long ;
    const ll M=998244353;
    ll ans=1,a[102];
    int n;
    ll pm(ll x,ll b){x%=M;ll res=1;while(b){if(b&1)res=res*x%M;x=x*x%M;b>>=1;}return res;}
    void f1(){
    	cin>>n;
    	ll na=0,ans=1,res=0;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];na+=a[i];na%=M;
    	}
    	ll inv=pm(na,M-2);
    	for(int i=1;i<=n;i++){
    		a[i]=a[i]*inv%M;
    		ll tmp=pm(1+M-a[i],M-2);
    		res+=tmp*a[i]%M;
    		res%=M;
    		ans=ans*tmp%M;
    	}
    	res=(res*2%M+1)%M;
    	ans=ans*res%M;
    	cout<<ans;
    }
    int main(){
    	f1();
    	return 0;
    }
    
  • 相关阅读:
    自己用的,存储代码
    ASCII编码表
    全球最热门编程语言20种
    C++中二维数组new小结
    字符,字节和编码
    让工资涨的快的小技巧
    Ip Messenger
    xajax中文手册
    BitmapFile Formats(BMP文件的格式)
    python中返回字符串中指定字符的索引
  • 原文地址:https://www.cnblogs.com/bobh/p/15063839.html
Copyright © 2011-2022 走看看