题目链接

思路如下

这题可以普通的并查集来做,我们把每个人认识的红娘,放到一个同一个集合里面,然后通过 for循环 遍历出现过的编号,看总共有几个集合,当集合的个数大于1的时候,需要的话费rmb的数量是 集合数 - 1 ; ;其次我们还需要特殊考虑:那些一个 红娘都不认识的人,那么他一定 要花费1 rmb

题解如下

#include<iostream>
#include<map>
using namespace std;
const int Len = 1005;
int ar[Len]; int find(int x)
{
if(ar[x] == x)
return x;
return ar[x] = find(ar[x]);
} void Union(int x, int y)
{
int fx = find(x);
int fy = find(y);
if(fx != fy)
ar[fx] = fy;
} int main()
{
map<int,int> mp; int m,n;
scanf("%d %d",&m,&n);
//初始话集合
for(int i = 1; i <= n; i ++)
ar[i] = i;
int val,first_val;
int ans = 0;
for(int i = 1; i <= m; i ++)
{
int t;
scanf("%d",&t);
if(t == 0)
{
ans ++;
}
for(int j = 1; j <= t; j ++)
{
scanf("%d", &val);
mp[val] ++;
if(j == 1)
first_val = val;
else
Union(val , first_val);
}
} int tem = 0;
for(auto x:mp)
if(find(x.first) == x.first)
tem ++;
if(tem > 0)
tem --;
printf("%d",ans + tem); return 0;
}

最新文章

  1. SqlServer简单数据分页
  2. c语言实现输入一组数自动从大到小排列
  3. python 数据处理中各种存储方式里数据类型的转换
  4. windows下mysql开启远程访问权限
  5. Qt 串口学习3
  6. D. Green and Black Tea
  7. HDU1180+BFS
  8. [BZOJ 2049] [Sdoi2008] Cave 洞穴勘测 【LCT】
  9. HDU 4810 这道题 是属于什么类型?
  10. SSDTHook实例--编写稳定的Hook过滤函数
  11. log4j之mybatis配置
  12. Python之旅Day6 模块应用
  13. Scrapy基础(七)————图片的简单下载
  14. gawk命令详解
  15. CodeForces - 920C Swap Adjacent Elements
  16. Java进阶面试题列表
  17. 20145206邹京儒《网络对抗》逆向及Bof基础实践
  18. vncserver的安装和使用
  19. Creating Isomorphic Apps with Node.js, React, and Express
  20. esp_err_t esp_event_loop_init(system_event_cb_t cb, void *ctx);

热门文章

  1. 小程序的数据存储,与Django等服务发送请求
  2. seo搜索优化教程11-seo搜索优化关键词策略
  3. 简单的猜数字小游戏--Python
  4. 纯django开发博客系统
  5. Button相关设置
  6. 使用PageHelper插件分页时,如何对对象进行转换以及添加属性
  7. LeetCode-最长回文串
  8. HTML每日学习笔记(2)
  9. Kubernetes中Pod健康检查
  10. Python GUI wxPython StaticText控件背景色透明