• POJ1611基础带权并查集


    题意:
          有一个人生病了,和他一个社团或者间接和他有联系的人都会生病,问一共有多少人生病了。


    思路:
          比较简单和基础的题,带权并查集中的一种,就是记录更新集合元素个数,这个题目我是开始的时候每个人自己在自己的集合里,元素个数是1,然后在多开出来m个集合,让第i个社团直接映射到i+n个集合,元素个数一开始是0,然后就是简单更新了,还有就是注意下两个人已经属于同一个集合的时候就直接跳过,不用处理。


    #include<stdio.h>
    #include<string.h>


    #define N 30000 + 500 + 10


    int mer[N] ,sum[N];


    int finds(int x)
    {
        return x == mer[x] ? x : mer[x] = finds(mer[x]);
    }


    int main ()
    {
        int n ,m ,i ,a ,k;
        while(~scanf("%d %d" ,&n ,&m) && n + m)
        {
            for(i = 1 ;i <= n + m ;i ++)
            {
                if(i <= n) sum[i] = 1;
                else sum[i] = 0;
                mer[i] = i;
            }
            for(i = 1 ;i <= m ;i ++)
            {
                scanf("%d" ,&k);
                int y = finds(i+n);
                while(k--)
                {
                    scanf("%d" ,&a);
                    ++a;
                    int x = finds(a);
                    if(x == y) continue;
                    mer[x] = y;
                    sum[y] += sum[x];
                }
            }
            int x = finds(1);
            printf("%d " ,sum[x]);
        }
        return 0;
    }









  • 相关阅读:
    作为PHP开发者请务必了解Composer
    如何优雅的使用 phpStorm 开发工具
    Sublime Text 3的安装,卸载,更新,激活
    高效的一天可以这样过
    编译安装PHP开发环境
    Linux操作系统Centos7.2版本搭建Apache+PHP+Mysql环境
    PHP面试题分享与答案
    腾讯2016校招编程题【PHP实现】
    程序的优化(PHP)
    在Mac系统下配置PHP运行环境
  • 原文地址:https://www.cnblogs.com/csnd/p/12062511.html
Copyright © 2020-2023  润新知