zoukankan      html  css  js  c++  java
  • [CF1279D] Santa's Bot

    [CF1279D] Santa's Bot - 概率

    Description

    给定 N 个集合,程序会等概率选出一个集合 A,在期中等概率选出一个元素 y,同时再等概率选出一个集合 B,求 y 属于 B 的概率。

    Solution

    统计每个元素在多少个集合里出现,再扫一遍所有元素算贡献

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    const int mod = 998244353;
    
    int qpow(int p, int q) { return (q & 1 ? p : 1) * (q ? qpow(p * p % mod, q / 2) : 1) % mod; }
    int inv(int p) { return qpow(p, mod - 2); }
    
    signed main()
    {
        ios::sync_with_stdio(false);
        int n;
        cin >> n;
        map<int, int> mp;
        vector<vector<int>> a(n + 2);
        for (int i = 1; i <= n; i++)
        {
            int siz;
            cin >> siz;
            while (siz--)
            {
                int x;
                cin >> x;
                mp[x]++;
                a[i].push_back(x);
            }
        }
        int ans = 0;
        for (int i = 1; i <= n; i++)
        {
            int siz = a[i].size();
            for (int j : a[i])
                ans += mp[j] * inv(n) % mod * inv(n) % mod * inv(siz) % mod;
            ans %= mod;
        }
    
        cout << ans;
    }
    
  • 相关阅读:
    Nginx从安装到配置文件详解
    python流程控制语句
    python数据类型以及方法
    python介绍以及基础基础语法
    new 操作符
    js 模拟substr
    js 对于链式加载的思考
    js 实现哈夫曼树
    js实现深度优先
    js 广度优先遍历
  • 原文地址:https://www.cnblogs.com/mollnn/p/14419774.html
Copyright © 2011-2022 走看看