HDOJ1232 ( 畅通工程 ) 【并查集】
Problem : 1232 ( 畅通工程 ) Judge Status : Accepted
RunId : 5938141 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
RunId : 5938141 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include <stdio.h> #include <string.h> int set[1005],s,n; void MergeSet(int a,int b) { int i; s--; for (i=0;i<n;i++) { if(set[i]==a) set[i]=b; } } int main() { int i,m,a,b,f,t; while(scanf("%d",&n),n) { s=n-1; scanf("%d",&m); for (i=0;i<n;i++) set[i]=i; for (i=0;i<m;i++) { scanf("%d%d",&a,&b); f=set[a-1]; t=set[b-1]; if(f!=t) MergeSet(f,t); } printf("%d\n",s); } return 0; }
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。