Educational Codeforces Round 79 D - Santa's Bot(概率計算)


⛄ ⛄ ⛄

以前居然沒寫過這種類型的題,現場題都讀不懂,,哭了

題意:有n個孩子,每個孩子有k[ i ]件想要的,現在隨機挑一個孩子,從他想要的禮物里面隨機挑一個,然后送給另一個孩子,問你送的這個禮物在后一個孩子願望單里的概率

假設我們現在挑出來一個孩子x,挑出他的概率為1/n,從他的願望單里選一個禮物,概率變為1/n * 1/k[ x ],再挑一個孩子並且符合的概率:1/n * 1/k[ x ] * cnt[該禮物]/n ;

#define  mod 998244353
///快速冪m^k%mod
ll qpow(int m, int k)
{
    ll res=1, t=m;
    while (k)
    {
        if(k&1) res = res * t % mod;
        t = t * t % mod;
        k >>= 1;
    }
    return res;
}
// 快速冪求逆元
int Fermat(int a,int p)//費馬求a關於b的逆元
{
    return qpow(a,p-2);
}
int cnt[MAXN],k[MAXN];
vector<int>a[MAXN];
int main()
{
    fast;
    int n;cin>>n;
    rep(i,n)
    {
        cin>>k[i];
        a[i].resize(k[i]);
        rep(j,k[i]) cin>>a[i][j],++cnt[a[i][j]];//記錄想要該禮物的人數
    }
    ll ans=0;
    rep(i,n)
    {
        ll cur=0;
        rep(j,k[i]) cur+=cnt[a[i][j]];
        ans+=((cur%mod)*Fermat(k[i],mod))%mod;
    }
    ans=((ans%mod)*Fermat((1ll*n*n)%mod,mod))%mod;
    cout<<ans<<endl;
    //stop;
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM