CF1598B Groups
题目描述
有 $n$ 名学生参加了 Berland SU 编程课程的第一次会议($n$ 是偶数)。所有学生将被分成两组。每组每周将在五个工作日中的一天上课(周一、周二、周三、周四和周五),且两组选择的上课日必须不同。此外,两组的人数必须相等。
每位学生都填写了一份调查问卷,说明了他们在一周中哪些天方便上课,哪些天不方便。
你的任务是判断是否可以选择两个不同的工作日为两组安排上课,并将学生分成两组,使得每组人数相等,并且对于每个学生,其所在组的上课日对他来说是方便的。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来是 $t$ 个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($2 \le n \le 1000$),表示学生人数。
接下来的 $n$ 行,每行包含 $5$ 个整数,每个整数为 $0$ 或 $1$。如果第 $j$ 个整数为 $1$,则第 $i$ 个学生可以在一周的第 $j$ 天上课;如果为 $0$,则不可以。
输入的额外约束:对于每个学生,至少有一天是方便的。所有测试用例中学生总数不超过 $10^5$。
输出格式
对于每个测试用例,输出一行答案。如果可以将学生分成两组且满足所有条件,输出 "YES"(不含引号);否则输出 "NO"(不含引号)。
说明/提示
在第一个测试用例中,有一种方式可以满足所有条件。例如,第一组可以由第 1 个和第 3 个学生组成,他们在周四(第 4 天)上课;第二组可以由第 2 个和第 4 个学生组成,他们在周二(第 2 天)上课。
在第二个测试用例中,不可能将学生分组使得他们在不同的天上课。
由 ChatGPT 4.1 翻译