/ Vijos / 题库 /

学语言

学语言

时间限制:1秒  内存限制:256M


【问题描述】

  农夫约翰的 \(N\) 头奶牛,编号为 \(1\sim N\),一共会流利地使用 \(M\) 种语言,编号从 \(1\sim M\)。第 \(i\) 头,会说 \(K_i\)(\(1 ≤ K_i ≤ M\)) 种语言,即 \(L_{i_1}, L_{i_2},…,L_{i_{K_i}}\) (\(1 ≤ L_{ij} ≤ M\))。

  FJ的奶牛不太聪明,所以 \(K_i\) 的总和至多为 100,000。两头牛,不能直接交流,除非它们都会讲某一门语言。然而,没有共同语言的奶牛们,可以让其它的牛给他们当翻译。换言之,牛 \(A\) 和 \(B\) 可以谈话,当且仅当存在一个序列奶牛 \(T_1,T_2,…,T_k\),\(A\) 和 \(T_1\) 都会说某一种语言,\(T_1\) 和 \(T_2\) 也都会说某一种语言……,并且 \(T_k\) 和 \(B\) 会说某一种语言。

  农夫约翰希望他的奶牛更加团结,所以他希望任意两头牛之间可以交流。他可以买书教他的奶牛任何语言。作为一个相当节俭的农民,FJ想要购买最少的书籍,让所有他的奶牛互相可以说话。帮助他确定:*他必须购买的书籍的最低数量

【输入格式】

  第 \(1\) 行:两个用空格隔开的整数:\(N\) 和 \(M\)。
  第 \(2..N+1\) 行:第 \(i+1\) 行描述的牛 \(i\) 的语言,\(K_i+1\) 个空格隔开的整数:$K_i,L_{i_1}, L_{i_2},…,L_{i{K_i}}。

【输出格式】

  一个整数,FJ最少需要购买的书籍数量。

【输入输出样例】

 Input

3 3
2 3 2
1 2
1 1

 Output

1

【输入输出样例解释】

  给三号牛买第二本书即可。

【数据说明】

  对于 \(100\%\) 的数据 \(1 ≤ N ≤ 10000\),\(1 ≤ M ≤ 30000\)

【来源】

  Mr.he

信息

ID
1646
难度
(无)
分类
数据结构 | 并查集 点击显示
标签
递交数
0
已通过
0
通过率
?
上传者