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
#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/
* 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/CheeseZH/p/2498073.html