A - Learning Languages

在 “BerCorp” 公司,有 n 名雇员。这些雇员可以使用 m 种核准的正式语言,用于正式的通信。这些语言以整数编号,介于 1 到 m 之间。对于每名雇员,我们已知他所懂语言的列表。这个列表可能是空的,即一名雇员可能不懂任何正式语言。但雇员们愿意学习一种或多种正式语言,只要公司为他们的课程而付费。对于每名雇员而言,学一门语言的课程费用是 1 BER$ 元 (berdollar)。
求出该公司需要花费的合计费用的最小值,使得任意一名雇员能够与任意其他一名雇员通信 (他们之间的通信可以是非直接的,即允许其他雇员帮助翻译)。
输入
第一行包含两个整数 n 和 m (2 ≤ n, m ≤ 100) — 雇员数目和语言数目。
接下来的 n 行 — 每个雇员的语言列表。在第 i 行的开始,是整数 ki (0 ≤ ki ≤ m) — 第 i 名雇员所懂语言的数目。接下来,第 i 行还包含了 ki 个整数 — aij (1 ≤ aij ≤ m) — 第 i 名雇员所懂各语言的相应标识。数据保证:每个列表中的全部标识都是唯一的。注意:一名雇员可能懂得 0 种语言。
各行中的数字,以单个空格间隔。
输出
打印仅有的一个整数 — 所需支付的费用的最小值,使得最终每名雇员可以与其他任何一名雇员通信 (其他雇员可以帮助翻译)。
示例
输入
5 5
1 2
2 2 3
2 3 4
2 4 5
1 5
输出
0
输入
8 7
0
3 1 2 3
1 1
2 5 4
2 6 7
1 3
2 7 4
1 1
输出
2
输入
2 2
1 2
0
输出
1
备注
在第二个示例中,雇员 1 可以学习语言 2,且雇员 8 可以学习语言 4。
在第三个示例中,雇员 2 必须学习语言 2。
题意:输入n,m代表人数和语言种数,接下来n行,输入t(每个人会的语言总数)后面跟着t个数(语言序号)问总共还要学习多少语言,可以让每两个员工可以直接或间接交流。
方法:并查集

#include"iostream"
#include"algorithm"
#include"cstring"
#include"set"
using namespace std;
int pre[150];
void init()
{for(int i = 0;i < 101;i ++){pre[i]=i;}
}
int find(int x)
{return x==pre[x] ? x:pre[x]=find(pre[x]);
}
void join(int x,int y)
{int fx=find(x);int fy=find(y);if(fx != fy){pre[fx]=fy;}
}
int main()
{int n,m;while(cin >> n >> m){init();int vst[105]={0};int sum =0 ;for(int i = 0;i < n;i ++){int t;cin >> t;int a[105];if(t==0){sum ++;continue;}cin >> a[0];vst[a[0]]++;for(int  j = 1;j < t;j ++){cin >>a[j];vst[a[j]]++;join(a[j-1],a[j]);}}int pl = 0;for(int i = 1;i <= m;i ++){if(vst[i]){if(pre[i]==i){pl++;}}}pl=max(0,pl-1);cout<<sum+pl<<endl; }return 0;
}

A - Learning Languages相关推荐

  1. 刷题记录:牛客NC24608[USACO 2011 Ope S]Learning Languages

    传送门:牛客 题目描述: [USACO11OPEN]Learning Languages S 农夫约翰的 N ( 2 < = N < = 10 , 000 ) N(2<=N<= ...

  2. 【CodeForces - 278C 】Learning Languages(并查集,思维)

    题干: The "BerCorp" company has got n employees. These employees can use m approved official ...

  3. B - Learning Languages

    一.题目: The "BerCorp" company has got n employees. These employees can use m approved offici ...

  4. Istio微服务平台集成实践

    前言 Istio发布1.0版本后,其服务发现和路由规则功能已基本具备production能力,我们也开始了Istio和公司内部微服务平台的集成工作,打算以Istio为基础打造一个微服务管控中心,在这里 ...

  5. 英语国家的学生学语法么?_纪念国家语法日

    英语国家的学生学语法么? by Pete Considine 皮特·康斯丁(Pete Considine) 纪念国家语法日 (In Honor of National Grammar Day) -或作 ...

  6. 基于tcp的网络程序_【CVPR 2020 Tutorial】基于神经网络的符号化视觉推理和程序合成(2)...

    往期回顾:https://zhuanlan.zhihu.com/p/165665242 第三讲:Neuro-Symbolic Visual Concept Learning 主讲:Jiayuan Ma ...

  7. sql server高可用_SQL Server 2019常规可用性和安装概述

    sql server高可用 介绍 (Introduction) On November 4th, 2019, during the Ignite conference at Orlando, Micr ...

  8. [渝粤教育] 深圳信息职业技术学院 《新理念英语》English For You 参考 资料

    教育 -<新理念英语>English For You-章节资料考试资料-深圳信息职业技术学院[] Which is true about the introduction? 1.[多选题] ...

  9. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

最新文章

  1. ISME: 北大吴晓磊课题组揭示合作演化新机制:“自私”驱动合作关系的建立?...
  2. Color Blended Layers
  3. Oracle数据库的轻松干净卸载
  4. 不常见但很有用的chrome调试工具使用方法
  5. Remove Duplicates from Sorted List 去除链表中重复值节点
  6. 前端学习(325):javascript历史
  7. python3  循环输出当前时间。
  8. linux从虚拟磁盘启动,Linux虚拟磁盘实战
  9. php换行符sql,如何在PHP和MySQL的textarea中给换行符的同时避免SQL注入?
  10. linux arm sbus,嵌入式ARM系列linux2.4配置makefile完全注释(2)
  11. ZZULIOJ:1000: 从今天开始入坑C语言
  12. 阿里月饼事件,猿方怎么看?
  13. 大数据下 移动计算 和 移动数据的一点理解
  14. linux 触摸屏多点触摸改成单点触摸 驱动调试
  15. t6服务器验证密码失败,用友T6软件T6服务无法启动,提示SA密码错误
  16. 结构化数据,非结构化数据,半结构化数据的区别
  17. 基于SSM的大学生创业众筹平台网站毕业设计源码212000
  18. mpstat命令(linux cpu监控工具)
  19. 你所不知道的精神分裂症
  20. 【C基础练习题】第一章:输入和输出 | 基础练习题 | 提供题解

热门文章

  1. 【实战】Unity3d实战之Unity3d网络游戏实战篇(9):协议
  2. 优秀的Source Code Pro字体下载
  3. RocksCluster上Fluka编译环境gcc/gfortran配置
  4. web3.0 会是下一代互联网的风口么?
  5. LeetCode题解——二叉树的堂兄弟节点
  6. 阿里云————发邮件,端口25被禁用解决方案
  7. 黑客利用本地新闻站点在iPhone上安装间谍软件
  8. IBM小型机AIX操作系统总结03--系统安装
  9. VS无法使用编辑并继续 及 警告LNK4075的解决方法
  10. Windows10最新版20H2系统下载与安装