zoukankan      html  css  js  c++  java
  • 1232 畅通工程

    畅通工程

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 31892    Accepted Submission(s): 16810


    Problem Description
    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 
     
    Input
    测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。 
    注意:两个城市之间可以有多条道路相通,也就是说
    3 3
    1 2
    1 2
    2 1
    这种输入也是合法的
    当N为0时,输入结束,该用例不被处理。 
     
    Output
    对每个测试用例,在1行里输出最少还需要建设的道路数目。 
     
    Sample Input
    4 2
    1 3
    4 3
    3 3
    1 2
    1 3
    2 3
    5 2
    1 2
    3 5
    999 0
    0
     
    Sample Output
    1
    0
    2
    998
    Hint
    Hint
    Huge input, scanf is recommended.
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<cstdlib>
     6 using namespace std;
     7 int f[1009],sum;
     8 int find(int x)
     9 {
    10     if(f[x]!=x)
    11     {
    12         f[x]=find(f[x]);
    13     }
    14     return f[x];
    15 }
    16 int make(int a,int b)
    17 {
    18     int f1=find(a);
    19     int f2=find(b);
    20     if(f1!=f2)
    21     {
    22         f[f2]=f1;
    23         sum--;
    24     }
    25     return 0;
    26 }
    27 int main()
    28 {
    29     //freopen("in.txt","r",stdin);
    30     int n,m;
    31     while(~scanf("%d%d",&n,&m))
    32     {
    33         if(n==0)
    34         break;
    35         for(int i=1;i<=n;i++)
    36         f[i]=i;
    37         sum=n-1;
    38         for(int i=1;i<=m;i++)
    39         {
    40             int a,b;
    41             cin >> a >> b;
    42             make(a,b);
    43         }
    44         printf("%d
    ",sum);
    45     }
    46     return 0;
    47 }
    View Code
     
  • 相关阅读:
    CRM更新行数量汇总的一些注意点
    [转]IT人从业方向
    地球撞击
    如何将Dynamic CRM Activities添加到VS工具箱
    linux本地 yum环境建立
    【转】根据条件修改GridView命令按钮显示的文字
    【转】Asp.net 2.0三层架构的构建与理解
    GridView的常用用法总结说明
    IE中的奇怪问题
    解决打不开 RSA 密钥容器 即:加密web.config中的内容
  • 原文地址:https://www.cnblogs.com/xuesen1995/p/4105837.html
Copyright © 2011-2022 走看看