九度oj 1526 朋友圈 并查集
2014-04-05 23:41
267 查看
父亲节点怕par[i]是i,说明他是根,总共有多少个根就有多少个朋友圈,因为并查集经过路径压缩后,只要是同一颗树就有相同的根
#include<iostream> using namespace std; int par[100005],ran[100005]; void inital(int n) { for(int i=1;i<=n;i++) { par[i]=i; ran[i]=0; } } int find(int x) { if(x==par[x])return x; else return par[x]=find(par[x]); } void unite(int x,int y) { int a=find(x); int b=find(y); if(a==b)return ; if(ran[a]<ran[b])par[a]=b; else { par[b]=a; if(ran[a]==ran[b]) ran[a]++; } } int main() { int i,j,k,m,n; int a,b; k=0; while(cin>>n>>m&&n) { inital(n); for(i=1;i<=m;i++) { cin>>a>>b; unite(a,b); } int ans=0; for(i=1;i<=n;i++) if(par[i]==i) ans++; cout<<ans<<endl; } } /************************************************************** Problem: 1526 User: 林佳钦gggg Language: C++ Result: Accepted Time:530 ms Memory:2300 kb ****************************************************************/
相关文章推荐
- 九度OJ题目 1526 朋友圈 并查集
- 【九度OJ】:1526 并查集 朋友圈问题
- 九度OJ 朋友圈 并查集
- 九度题目1526:朋友圈 小米2013年校园招聘笔试题 并查集
- 九度 1526:朋友圈(并查集)
- 九度OJ 朋友圈 -- 并查集
- 九度OJ 1526 朋友圈
- 九度OJ 朋友圈 -- 并查集
- 九度 1526:朋友圈
- 九度 1526:朋友圈
- 【九度】题目1526:朋友圈
- 九度题目1526:朋友圈
- 九度OJ 1325:Battle Over Cities(城市间的战争) (并查集)
- 九度 题目1526:朋友圈
- 九度OJ 1325:Battle Over Cities(城市间的战争) (并查集)
- JD 1526 朋友圈(并查集 合并)
- 九度OJ 1446 Head of a Gang -- 并查集
- 九度Online Judge_1526: 朋友圈
- 【九度OJ】1012【树】【并查集】【畅通工程系列2005】
- 【九度OJ】1024【并查集】【BST】【畅通工程系列2007】