• 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;
    }
  • 相关阅读:
    Java8 中的 Optional
    阿里云查看本服务器 公网ip地址 命令
    Linux添加alias简化命令
    kafka consumer 配置详解
    Kafka查看topic、consumer group状态命令
    ConcurrentHashMap源码分析
    HashMap源码分析
    Java使用Aspose组件进行多文档间的转换操作
    个人Vim配置(即vim目录下vimrc_)
    暑假个人小结
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4667627.html
Copyright © 2020-2023  润新知