• hdu 1232畅通工程


    问题描述如下:

    “畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
    城镇数码N,道路数目M;

    简单的畅通工程,只要套模板就OK 。不过要理解哦。。。(若有N个集合,则最少只需N-1条道路就可以连起来)

    #include"stdio.h"
    int set[1024];
    int find(int i)
    {
        return set[i]==i?set[i]:find(set[i]);  
    }
    void  merge(int x,int y)
    {
        int a=find(x),b=find(y);
        set[a]=b;     
    }
    int main()
    {
        int N,M,a,b;
        while(scanf("%d %d",&N,&M)!=EOF&&N)
        {
             for(int i=1;i<=N;++i)
                 set[i]=i;
             for(int i=1;i<=M;++i)              
             {
                 scanf("%d%d",&a,&b);
                 merge(a,b);       
             }
             int c=0;
             for(int i=1;i<=N;++i)
                 if(set[i]==i)
                   ++c;
            printf("%d\n",c-1);
        }   
        return 0;
    }

  • 相关阅读:
    书籍阴影
    Cookie工具类
    兼容性问题总结
    pc端弹框
    懒加载 js----例子------图片
    pc端样式初始化
    Sublime 插件- px 转rem
    手机端1px细线公共类
    移动端样式初始化
    SQL Server(七)——存储过程
  • 原文地址:https://www.cnblogs.com/QQbai/p/2129075.html
Copyright © 2020-2023  润新知