畅通project

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 37204    Accepted Submission(s): 19715

Problem Description
某省调查城镇交通状况。得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。

省政府“畅通project”的目标是使全省不论什么两个城镇间都能够实现交通(但不一定有直接的道路相连。仅仅要互相间接通过道路可达就可以)。问最少还须要建设多少条道路? 

 
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.

题解:并查集模板题。

參考代码:

#include<stdio.h>
int father[1005];
int find(int n)
{
return father[n]==n? n:father[n]=find(father[n]);
}
void merge(int x,int y)
{
int fx,fy;
fx=find(x);
fy=find(y);
if(fx!=fy)
father[fx]=fy;
}
int main()
{
int n,m,a,b,sum;
while(~scanf("%d",&n))
{
if(n==0)break;
scanf("%d",&m);
sum=0;
for(int i=1;i<=1001;i++)
father[i]=i;
for(int i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
merge(a,b);
}
for(int i=1;i<=n;i++)
{
if(father[i]==i)
sum++;
}
printf("%d\n",sum-1);
}
return 0;
}

HDU 1232 - 并查集 解题报告的更多相关文章

  1. HDU 1232 并查集/dfs

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=1232 我的第一道并查集题目,刚刚学会,我是照着<啊哈算法>这本书学会的,感觉非常通俗易懂,另 ...

  2. ACM: 畅通工程-并查集-解题报告

    畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查城镇交通状况 ...

  3. ACM: The Suspects-并查集-解题报告

    The Suspects Time Limit:1000MS Memory Limit:20000KB 64bit IO Format:%lld & %llu Description 严重急性 ...

  4. HDU 1232 并查集板子题

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...

  5. ACM: Ubiquitous Religions-并查集-解题报告

    Ubiquitous Religions Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Descript ...

  6. HDU 1232 并查集

    畅通工程                                                                                            Time ...

  7. 畅通工程 HDU - 1232 并查集板子题

    #include<iostream> #include<cstring> using namespace std; ; int p[N]; int find(int x) { ...

  8. hdu 4514 并查集+树形dp

    湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  9. HDU 3926 并查集 图同构简单判断 STL

    给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...

随机推荐

  1. myeclipse集成svn

    svn安装 这个我在博客中的代码管理里面有些,也是一直next.svn代码管理版本号管理器安装好之后. myeclipse的svn插件 方法一: 然后配置MyEclipse的SVN插件,将插件下载下来 ...

  2. [Angular] Getting to Know the @Attribute Decorator in Angular

    So when you using input binding in Angular, it will always check for update. If you want to improve ...

  3. java 抽象类和接口的差别

     语法层面上: 1)抽象类能够提供成员方法的实现细节.而接口中仅仅能存在public abstract 方法. 2)抽象类中的成员变量能够是各种类型的.而接口中的成员变量仅仅能是public st ...

  4. SDUT OJ 1124 飞越原野 (三维BFS练习)

    飞跃原野 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit5000ms Memory Limit 65536K ...

  5. UVA 11000- Bee 递推

    In Africa there is a very special species of bee. Every year, the female bees of such species give b ...

  6. mysql事务的开启

    mysql事务的开启 对于一个MYSQL数据库(InnoDB),事务的开启与提交模式无非下面这两种情况: 1>若参数autocommit=0,事务则在用户本次对数据进行操作时自动开启,在用户执行 ...

  7. 【BZOJ 2724】 蒲公英

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2724 [算法] 分块算法在线维护区间众数 分块算法的精髓就在于 : 大段维护,局部朴 ...

  8. Java-MyBatis:MyBatis XML 文件

    ylbtech-Java-MyBatis:MyBatis XML 文件 1.返回顶部 1. Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大, ...

  9. R dataframe 去除行号

    原先的行号是这样的:

  10. HTMLWEST网页特效大全

    网页特效大全网:www.htmlwest.com 收藏一下,很不错的站.