zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    NSURLRequest的缓存策略
    React-Native安装使用
    iOS开发--XMPPFramework--环境的配置(一)
    iOS9 HTTP 网络访问问题
    数据交换的三种方法
    iOS项目--古典音乐浏览
    iOS学习笔记33
    iOS bug 日志 -frame 和 bounds的区别
    iOS学习笔记32
    iOS项目 画图小程序
  • 原文地址:https://www.cnblogs.com/QQbai/p/2129075.html
Copyright © 2011-2022 走看看