hdu 1213 How Many Tables(并查集)
2016-01-19 09:45
399 查看
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define MAXN 1024 int fa[MAXN]; int set_find(int d) { if(fa[d]<0)return d; return fa[d]=set_find(fa[d]); } void set_join(int x,int y) { x=set_find(x); y=set_find(y); if(x!=y)fa[x]=y; } int main() { int T; int N,M; int A,B; int sum; scanf("%d",&T); while(T--) { memset(fa,-1,sizeof(fa)); scanf("%d%d",&N,&M); while(M--) { scanf("%d%d",&A,&B); set_join(A,B); } sum=0; for(int i=1; i<=N; ++i) { if(fa[i]<0) { ++sum; } } printf("%d\n",sum); } return 0; }
相关文章推荐
- Springmvc入门教程,结合Ajax实现最佳精简demo,直击原理,方便易用。
- 蓝桥杯 历届试题 高僧斗法
- 去掉navigationBar与tableView 之间的线条
- ORA-28368: 无法自动创建 wallet
- 在Eclipse中使用MAT分析Android程序内存使用状况(转)
- 原生程序初次逆向之ARM与X86相关知识对比
- java_构造函数(构造方法)
- 给SM30视图添加按钮
- 关于嵌入式的学习和职业发展
- 2516: 剪刀石头布
- FT系列touch----dtsi里的gpio 属性
- Can't create handler inside thread that has not called Looper.prepare()解决办法
- rebmuNenohPafosnoitanibmoCretteL.17
- 面试总结
- CXF框架入门实例
- Swift - 短信发送功能的实现
- MAT(Memory Analyzer Tool)工具入门介绍(转)
- 奥姆卡剃刀原理
- 复习action委托
- CDN缓存那些事