问题2165--课程

2165: 课程

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 2
[提交] [状态] [讨论版] [命题人:]

题目描述

考虑一组 N 个学生和 P 课程。每个学生访问零个,一个或多个课程。你的任务是确定是否有可能组建一个由P级学生组成的委员会,同时满足以下条件:
  • 委员会中的每个学生都代表不同的课程(如果学生访问该课程,他/她可以代表该课程)
  • 每门课程在委员会中都有一名代表

输入

输入的第一行包含测试集的数量。每个测试集都以下列格式表示:

P N
计数1 学生1 1 学生1 2 ...学生1 计数1
计数2 学生2 1 学生 2 2 ...学生2 计数2
...
计数学生P 1学生P 2 ...StudentP CountP

每个数据集中的第一行包含两个正整数,以一个空白分隔:P (1 <= P <= 100) - 课程数量和 N (1 <= N <= 300) - 学生数量。接下来的P行按从课程1到课程P的课程顺序描述,每行描述一个课程。当然 i 的描述是一条以整数 Count i (0 <= Count i <= N) 开头的线,表示访问课程 i 的学生人数。接下来,在空白之后,您找到Count i学生,访问课程,每个连续两个被一个空白隔开。学生使用从 1 到 N 的正整数进行编号,
连续的数据集之间没有空行。输入数据正确。

输出

程序的结果在标准输出上。对于每个输入数据集,如果可以组成委员会,程序将在一行上打印"YES",否则打印"NO"。行首不应有任何前导空格。

样例输入

2
3 3
3 1 2 3
2 1 2
1 1
3 3
2 1 3
2 1 3
1 1

样例输出

YES
NO

来源/分类


[提交] [状态]