其他分享
首页 > 其他分享> > 朋友圈

朋友圈

作者:互联网

朋友圈

描述

有n个人,编号1-n。
现在有一个舞会,在舞会上,大家会相互介绍自己的朋友。
即: 如果a认识b,b认识c。那么在舞会上,a就会通过b认识到c。
现在,给出m个关系
每个关系描述:
a b
表示 编号为a和编号为b的人是朋友关系。

格式

输入格式

输入n和m
接下来m行,每行为a b

输出格式

最后问,会有多少个朋友圈。

样例

样例输入 Copy
5 3
1 2
2 3
4 5

样例输出 Copy
2

#include<stdio.h>
int fun(int a[],int n)
{//找老大 
	if(a[n]==n)  return n;
	a[n]=fun(a,a[n]);
	return a[n];
}
int main()
{
	int m,n;
	while(~scanf("%d%d",&n,&m))
	{
		int a[500100]={0};
		int x,y,i,xx,yy,k=0;
		for(i=1;i<=n;i++)
			a[i]=i;
		for(i=0;i<m;i++)
		{
			scanf("%d%d",&x,&y);
			xx=fun(a,x);
			yy=fun(a,y);
			if(xx!=yy)//如果两个老大不在一个圈子,则让其中一个老大加入另一个老大的圈子 
			{
				a[xx]=yy;
			}
		}
		for(i=1;i<=n;i++)
			if(a[i]==i) k++;//老大的个数就是圈子的个数		
		printf("%d\n",k);
	}
	return 0;
 } 
Trying_ 发布了5 篇原创文章 · 获赞 0 · 访问量 179 私信 关注

标签:舞会,int,样例,朋友圈,编号,格式
来源: https://blog.csdn.net/Trying_/article/details/104077608