题意:有$n$个孩子,第$i$个孩子有$k[i]$件想要的礼物,第$j$个礼物为$a[i][j]$,现在随机挑一个孩子,从他想要的礼物里面随机挑一个,然后送给另一个孩子$($这个孩子可以和第一个孩子是同一个人$)$,问你送的这个礼物在后一个孩子愿望单里的概率。

思路:求出每件礼物出现的次数$cnt[]$,挑出第一个孩子的概率为$\frac{1}{n}$,在他的愿望单里挑出一件礼物的概率为$\frac{1}{k[i]}$,挑出另一个孩子的概率也是$\frac{1}{n}$,挑出的第一个孩子的每件礼物$a[i][j]$出现了$cnt[a[i][j]]$次,那么对于第$i$个孩子的第$j$件礼物$a[i][j]$礼物而言,对答案的贡献就是$\frac{cnt[a[i][j]]}{n^{2}*k[i]}$,所以总概率$$p=\sum_{i=1}^{n}\sum_{j=1}^{k[i]}\frac{cnt[a[i][j]]}{n^{2}*k[i]}$$用快速幂取逆元。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector> using namespace std; typedef long long ll; const int N = ;
const ll mod = ; ll n, k[N], s[N], cnt[N];
vector<ll> v[N]; ll power(ll a, ll n, ll p)
{
ll ba = a, res = ;
while (n) {
if ( == n % ) res = (res * a) % p;
a = (a * a) % p, n /= ;
}
return res;
} int main()
{
scanf("%lld", &n);
for (int i = ; i <= n; i++) {
scanf("%lld", &k[i]);
for (int j = ; j <= k[i]; j++) {
ll a;
scanf("%lld", &a);
cnt[a]++, v[i].push_back(a);
}
}
for (int i = ; i <= n; i++) {
for (int j = ; j < k[i]; j++) s[i] += cnt[v[i][j]];
}
ll res = ;
for (int i = ; i <= n; i++) {
ll tp = ((n * n) % mod * k[i] % mod) % mod;
ll inv = power(tp, mod - , mod);
res = (res + (s[i] * inv) % mod) % mod;
}
printf("%lld\n", res);
return ;
}

最新文章

  1. iOS 设置UILabel的行间距并自适应高度
  2. 使用CSS使内容垂直居中的N中方法。
  3. 如何自动化一键部署PHP项目
  4. LoadRunner:视频教程、课件
  5. js 日期2015/12/22/16/45替换2015-12-22 16:45格式
  6. 高级I/O之存储映射I/O
  7. EasyUI-在行内进行表格的增删改操作
  8. Android(java)学习笔记218:开发一个多界面的应用程序之人品计算器的简单实现
  9. WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)
  10. name &#39;reload&#39; is not defined解决方法
  11. ZJOI2018 D1T2 历史(毕竟我菜,所以题解十分易懂。。)
  12. VB调用C# dll
  13. shell脚本之分析oracle数据库数据泵日志中表的大小
  14. Delphi中使用ADO连接Excel
  15. RPC终结点映射
  16. 启动startUML的时候报错“&quot;Exception EOleSysError in module StarUML.exe at 000AD559. &quot;
  17. (转)unity3d插件 HUD Text 学习
  18. 拼凑sql语句另外一个方法
  19. 动态创建OATipBean
  20. Python接口测试实战5(上) - Git及Jenkins持续集成

热门文章

  1. python 更换数据源
  2. chrome headless+selenium+python+(ubuntu 16.04/centos7) 下的实现
  3. 微信小程序 (组件的使用)
  4. 股票数据Scrapy爬虫
  5. 微信小程序 - height: calc(xx - xx);无效
  6. Redis02——安装Redis
  7. Bugku-CTF分析篇-手机热点(有一天皓宝宝没了流量只好手机来共享,顺便又从手机发了点小秘密到电脑,你能找到它吗?)
  8. 转载:WAV header
  9. C#初识LINQ
  10. Hadoop 启动/停止集群和节点的命令