学习语言
时间限制:1秒 内存限制:256M
【问题描述】
农夫约翰的 \(N\) 头奶牛,号为 \(1..N\),一共会流利地使用 \(M\) 种语言,编号从 \(1..M#\) 牛,\(Cow_i\) 会说 \(K_i(1≤K_i≤M)\)种语言,即 \(L_{i1}, L_{i2}, …, L_{iK_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_i1
L_i2,...,L_I{K_i}\)。
【输出格式】
第 \(1\) 行:一个整数,FJ最少需要购买的书籍数量。
第 \(2..B+1\) 行:第 \(i+1\) 行包含两个空格隔开的整数:语言的编号和学习这种语言的牛编号。如果存在多种解决方案,打印任何一个。
【输入输出样例1】
Input
3 3
2 3 2
1 2
1 1
Output
1
2 3
【数据说明】
对于 \(100\%\) 的数据,\(1 ≤ N ≤ 10000\),\(1 ≤ M ≤ 30000\)
【来源】
Mr.he
信息
- ID
- 1455
- 难度
- (无)
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者