hdu 1232 经典并查集应用
2014-05-26 17:51
239 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1232
完全就是并查集的应用啊。。。
View Code
完全就是并查集的应用啊。。。
View Code
1 #include<iostream> 2 const int N=1010; 3 using namespace std; 4 5 int n,m; 6 int parent ; 7 8 //初始化 9 void UFset(){ 10 for(int i=1;i<=n;i++){ 11 parent[i]=-1; 12 } 13 } 14 //找根结点 15 int Find(int x){ 16 int s; 17 for(s=x;parent[s]>=0;s=parent[s]); 18 //优化 19 while(s!=x){ 20 int temp=parent[x]; 21 parent[x]=s; 22 x=temp; 23 } 24 return s; 25 } 26 //合并 27 void Union(int R1,int R2){ 28 int r1=Find(R1); 29 int r2=Find(R2); 30 int temp=parent[r1]+parent[r2]; 31 if(parent[r1]>parent[r2]){ 32 parent[r1]=r2; 33 parent[r2]=temp; 34 }else { 35 parent[r2]=r1; 36 parent[r1]=temp; 37 } 38 } 39 40 int main(){ 41 while(scanf("%d%d",&n,&m)!=EOF){ 42 if(n==0)break; 43 int x,y,ans=n-1; 44 UFset(); 45 for(int i=1;i<=m;i++){ 46 scanf("%d%d",&x,&y); 47 if(Find(x)!=Find(y)){ 48 Union(x,y); 49 ans--; 50 } 51 } 52 printf("%d\n",ans); 53 } 54 return 0; 55 }
相关文章推荐
- hdu 1232 经典并查集应用
- HDU1232 畅通工程---(经典并查集应用)
- HDU 1232畅通工程(并查集经典应用)
- HDU--1232 -- 畅通工程 [并查集最简单应用]
- HDU 1232 畅通工程 并查集简单应用
- HDU1232~畅通工程~并查集的应用~~
- HDU 1232 畅通工程(经典题目,并查集)
- 畅通工程 HDU - 1232--并查集简单应用
- HDU 1232 & 1213并查集应用 练习
- hdu 1232 畅通工程(并查集初步应用)
- HDU 1232 (畅通工程) 并查集经典模板题
- hdu 1232 畅通工程(并查集的应用)
- HDU 1232 & 1213并查集应用 练习
- hdu1232 并查集
- 【解题报告】 POJ 1182 食物链 并查集的经典应用+相对位置
- HDU-1232(并查集)
- HDU 1232 畅通工程 并查集
- hdu1232 并查集
- hdu 1232 畅通工程 并查集
- HDU 1232 并查集问题