zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 79 D

    ⛄ ⛄ ⛄

    以前居然没写过这种类型的题,现场题都读不懂,,哭了

    题意:有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;
    }
    
  • 相关阅读:
    查看本机80端口占用方法
    LeetCode: Word Break II
    LeetCode: Word Break
    LeetCode: Sort List
    LeetCode: Single Number II
    LeetCode: Single Number
    LeetCode: Reorder List
    LeetCode: LRU Cache
    LeetCode: Max Points on a Line
    Insertion Sort List
  • 原文地址:https://www.cnblogs.com/Herlo/p/12110830.html
Copyright © 2011-2022 走看看