博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1213 并查集
阅读量:6236 次
发布时间:2019-06-22

本文共 1101 字,大约阅读时间需要 3 分钟。

题意:有 n 个朋友,他们可能相互认识,A 认识 B,B 认识 C,则 ABC 相互认识,现在给出他们的认识情况,相互认识的人坐一桌,否则需要分开坐,问至少需要多少桌。

其实就是问并查集的个数,在初始情况下一人一个并查集,共 n 个,每次合并操作会减少一个并查集,所以只要每次合并时计数减一下就行,全部合并完之后就可以输出剩余并查集个数了。

1 #include
2 #include
3 #include
4 using namespace std; 5 6 int fa[1005],n; 7 8 void init(){ 9 for(int i=1;i<=n;i++)fa[i]=i;10 }11 12 int find(int x){13 int r=x,t;14 while(r!=fa[r])r=fa[r];15 while(x!=r){16 t=fa[x];17 fa[x]=r;18 x=t;19 }20 return r;21 }22 23 int main(){24 int m,t;25 while(scanf("%d",&t)!=EOF){26 for(int q=1;q<=t;q++){27 cin>>n>>m;28 int c=n;29 int i;30 init();31 for(i=1;i<=m;i++){32 int a,b;33 cin>>a>>b;34 int x=find(a),y=find(b);35 if(x!=y){36 fa[x]=y;37 c--;38 }39 }40 cout<
<
View Code

 

转载于:https://www.cnblogs.com/cenariusxz/p/4788850.html

你可能感兴趣的文章
Mac OS X 恢复 VMware Fusion 虚拟机中的 vmdk 文件
查看>>
storm1.0节点间消息传递过久分析及调优
查看>>
PHPCMS V9 加密规则
查看>>
细说 ASP.NET Cache 及其高级用法
查看>>
Solidworks工程图 如何绘制向视图,辅助视图
查看>>
Ambari安装之Ambari安装前准备(CentOS6.5)(一)
查看>>
tomcat7 1000并发量配置 tomcat7配置优化
查看>>
python json ajax django四星聚会
查看>>
nodejs生成UID(唯一标识符)——node-uuid模块
查看>>
【RPC】使用Hessian构建RPC的简单示例
查看>>
反手发力动作--乒在民间
查看>>
安卓实训第七天---多线程下载实现(进度条)
查看>>
[1-1] 把时间当做朋友(李笑来)Chapter 1 【心智的力量】 摘录
查看>>
jquery插件--在input下输入密码时提示大写锁定键
查看>>
一种分布式框架设计(四)
查看>>
进阶之路(基础篇) - 021 arduino基础知识
查看>>
Eclipse设置默认的换行长度
查看>>
WIN10 64位 JDK的安装
查看>>
Linux配置防火墙添加端口(Ubuntu/Debian无法使用此方法)
查看>>
ant 小结
查看>>