zoukankan      html  css  js  c++  java
  • C

    某个人举办生日宴会邀请了很多人来参加,不过呢,这些人有个毛病他们只会与熟悉人的坐在一起,当然他们也信奉朋友的朋友也是朋友这一法则,所以问最少需要多少张桌子......

    好吧我承认这才是裸并查集.......没什么好说的,直接秒了吧

    /////////////////////////////////////////////////////////////////////
    #include<stdio.h>

    const int maxn  = 1005;

    int f[maxn];
    int Find(int x)
    {
        if(f[x] != x)
            f[x] = Find(f[x]);
        return f[x];
    }

    int main()
    {
        int T;

        scanf("%d", &T);

        while(T--)
        {
            int i, N, M, u, v;

            scanf("%d%d", &N, &M);

            for(i=1; i<=N; i++)
                f[i] = i;

            while(M--)
            {
                scanf("%d%d", &u, &v);
                u = Find(u);
                v = Find(v);

                f[u] = v;
            }

            int ans = 0;

            for(i=1; i<=N; i++)
            {
                if(f[i] == i)
                    ans++;
            }

            printf("%d ", ans);
        }

        return 0;
    }
  • 相关阅读:
    Java IO流面试题
    Oracle和MySql的区别
    Mybatis与Hibernate不同处
    java 多线程面试题
    Java 异常面试题
    Http中Get和Post请求方式的区别
    Mybatis常见面试题(转)
    解决:Adb connection Error:远程主机强迫关闭了一个现有的连接
    option的value、text与label 古老的bug
    测试
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4667627.html
Copyright © 2011-2022 走看看