CF1702E Split Into Two Sets
题目描述
Polycarp 最近得到了一组 $n$($n$ 为偶数)张多米诺骨牌。每张骨牌上有两个从 $1$ 到 $n$ 的整数。
他能否将所有骨牌分成两个集合,使得每个集合中的所有骨牌上的数字都互不相同?每张骨牌必须恰好属于其中一个集合。
例如,如果他有 $4$ 张骨牌:$\{1, 4\}$、$\{1, 3\}$、$\{3, 2\}$ 和 $\{4, 2\}$,那么 Polycarp 可以将它们按要求分成两个集合。第一个集合可以包含第一张和第三张骨牌($\{1, 4\}$ 和 $\{3, 2\}$),第二个集合包含第二张和第四张骨牌($\{1, 3\}$ 和 $\{4, 2\}$)。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含一个偶数整数 $n$($2 \le n \le 2 \cdot 10^5$),表示骨牌的数量。
接下来的 $n$ 行,每行包含两个整数 $a_i$ 和 $b_i$($1 \le a_i, b_i \le n$),表示第 $i$ 张骨牌上的数字。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一行:
- 如果可以将 $n$ 张骨牌分成两个集合,使得每个集合中所有骨牌上的数字都互不相同,输出 YES;
- 否则输出 NO。
你可以用任意大小写形式输出 YES 和 NO(例如 yEs、yes、Yes 和 YES 都被认为是肯定答案)。
说明/提示
在第一个测试用例中,骨牌可以这样分组:
- 第一组骨牌:$[\{1, 2\}, \{4, 3\}]$
- 第二组骨牌:$[\{2, 1\}, \{3, 4\}]$
换句话说,在第一组中我们取编号为 $1$ 和 $2$ 的骨牌,在第二组中取编号为 $3$ 和 $4$ 的骨牌。
在第二个测试用例中,无法将骨牌分成 $2$ 个集合,至少有一个集合会包含重复的数字。
由 ChatGPT 4.1 翻译