搭积木

作者: Jacinth | 来源:发表于2017-08-18 21:15 被阅读0次

    搭积木
    时间限制:C/C++语言 1000MS;其他语言 3000MS
    内存限制:C/C++语言 65536KB;其他语言 589824KB
    题目描述:
    一天,小明买了许多积木回家,他想把这些积木拼接在一起。每块积木有两个接口,每个接口我们用一个数字标记,规定只有当两块积木有相同数字标记的接口时,这两块积木才可以通过该接口拼接在一起。举例,有两块积木,接口数字分别为1,2和3,4,那么这两块积木无法拼接;若两块积木接口数字分别为1,2和2,3,那么这两块积木可以通过由数字2标记的接口拼接在一起。
    现在小明知道所有积木的数量和每块积木接口的数字标记,你能告诉他他可以将所有积木拼接成一个整体么?
    输入
    第一行一个整数t,表示测试数组组数1≤t≤10;
    接下来在每组测试数据中:
    第一行一个整数n,表示积木的数量1≤n≤100000,
    下面n行每行2个整数x,y,表示其中一块积木的两个接口的数字标记;1≤x,y≤100000;
    输出
    对于每组测试数据,输出”YES”,表示该组数据中的所有积木可以拼接成一个整体,”NO”表示不行。(注意输出不包括引号)

    样例输入
    2
    3
    1 2
    2 3
    4 5
    6
    1 2
    2 3
    3 5
    4 5
    4 6
    5 1
    样例输出
    NO
    YES

    Hint
    在第一组测试数据中,有3块积木,显然前两块是可以拼接在一起的,但是第3块无论如何也无法和前两块拼接,所以输出NO;第二组数据中我们可以这样拼接:5-1-1-2-2-3-3-5-5-4-4-6,因此输出YES。

    相关文章

      网友评论

          本文标题:搭积木

          本文链接:https://www.haomeiwen.com/subject/jbhzrxtx.html