HDU1232 畅通工程 并查集求连通分量
来源:互联网 发布:藤原文太 知乎 编辑:程序博客网 时间:2024/04/28 12:50
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232
题目大意:已知n个村庄之间有若干条通路,求出使他们联通所需添加的最少道理数。
分析:并查集记录已经联通的村庄集合,集合内部已经联通,m个集合之间需要添加m-1条道路来联通。
实现代码如下:
#include <cstdio>#include <iostream>using namespace std;const int maxn=1000;int par[maxn];void init(int n){ for(int i=1;i<=n;i++) par[i]=i;}int find(int x){ while(par[x]!=x) x=par[x]; return x;}void combine(int a,int b){ int fa=find(a); int fb=find(b); if(fa!=fb) par[fa]=fb;}int main(){ int n,m; while(cin>>n&&n) { init(n); cin>>m; int a,b; for(int i=0;i<m;i++) { cin>>a>>b; combine(a,b); } int ans=0; for(int i=1;i<=n;i++) if(par[i]==i) ans++; cout<<ans-1<<endl; } return 0;}
0 0
- HDU1232 畅通工程 并查集求连通分量
- hdu1232 畅通工程 并查集版题
- 九度OJ-1012:畅通工程(用并查集求连通分量数)
- 并查集 hdu1232 畅通工程
- 【hdu1232】畅通工程【并查集】
- HDU1232 畅通工程 并查集
- hdu1232畅通工程(并查集入门)
- 畅通工程 hdu1232 并查集
- hdu1232(畅通工程 并查集)
- 【并查集】-HDU1232-畅通工程
- hdu1232 畅通工程(并查集)
- HDU1232畅通工程 并查集
- hdu1232 畅通工程(并查集)
- Hdu1232 - 畅通工程 - 并查集
- HDU1232 畅通工程 并查集
- hdu1232 - 畅通工程 (并查集)
- 并查集 HDU1232 畅通工程
- hdu1232畅通工程,并查集
- Java从入门到精通——工具篇SVN与Git比较
- 排序问题
- 分享一个Android工具下载地址
- 【原创】mini2440 USB无法正常连接下载问题(dnw无法识别usb)
- 在Linux下改变进程的优先级
- HDU1232 畅通工程 并查集求连通分量
- 4.1 详解Servlet
- 学习C++ 精神指导
- 如何开机不桌面进入直接运行某一个程序
- 线程与进程
- 最好不要在C++动态库与调用着之间传递STL模版
- 谈谈Android中的SurfaceTexture
- Logstash pattern 例子
- Binary Tree Preorder Traversal