/ Vijos / 题库 /

学习语言

学习语言

时间限制: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
通过率
?
上传者