[POJ 2524]Ubiquitous Religions 并查集
2015-11-03 20:34
531 查看
题目大意
求不相交集合数裸并查集
代码
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> using namespace std; namespace Union_Find_Set{ #define MAXN 100005 int fa[MAXN],flag[MAXN]; void Initialize(){ for(int i=0;i<MAXN;i++){ fa[i]=i;flag[i]=0; } } int Find(int x){ return fa[x]==x?x:fa[x]=Find(fa[x]); } void Union(int x,int y){ int a=Find(x),b=Find(y); if(a>b){ fa[b]=a; }else{ fa[a]=b; } } } int N,m,ans(0),num(1); int main() { while(scanf("%d%d",&N,&m)!=EOF) { if(N==0&&m==0) break; using namespace Union_Find_Set; Initialize(); int a,b; for(int i=1;i<=m;i++){ scanf("%d%d",&a,&b); Union(a,b); } ans=0; for(int i=1;i<=N;i++){ int t=Find(i); if(!flag[t]) ans++; flag[t]=1; } cout<<"Case "<<num++<<": "<<ans<<endl; } }
相关文章推荐
- [300]Longest Increasing Subsequence
- Dwz(J-UI)框架--入门
- UIView convertRect
- Android_uiautomator支持输入中文
- getRequestDispatcher()与sendRedirect()的区别
- [LeetCode] Longest Increasing Subsequence
- 利用insert,update和delete注入获取数据
- lock_guard和unique_lock的区别
- Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel (规律)
- android中子线程更新UI的方式浅析
- iOS(9) SDWebImage 里面给 UIImageView 加载图片的逻辑是什么样的
- Kqueue 实现非阻塞 Socket 通信
- HDU 5531 Rebuild
- Android Bluetooth Low Energy(Android低功耗蓝牙)
- Arduino小车学习与研究博客
- protocol isis issues(续1.2----地址转化相关)
- [转]runOnUiThread 、 Handler 对比(一)
- Source Code Tags and Builds
- USB core(一) - rh_queue_status与rh_call_control
- Deploy .Net project automatically with MsBuild and MsDeploy (0)