JD 1526 朋友圈(并查集 合并)

来源:互联网 发布:剑三好友招募积分算法 编辑:程序博客网 时间:2024/04/30 23:47

OJ题目:click here~~

并查集入门题。

const int maxn = 200008 ;int n , m ;int fa[maxn] ;void init(){    for(int i = 0;i <= n;i++) fa[i] = i ;}int father(int x){    if(x == fa[x]) return  x ;    else return fa[x] = father(fa[x]) ;}void Merg(int x , int y){    int fx = father(x) ;    int fy = father(y) ;    if(fx != fy){        fa[fy] = fx ;    }}int main(){    while(scanf("%d",&n)){        if(n == 0) break ;        init() ;        int x , y ;        scanf("%d",&m) ;        while(m--){            scanf("%d%d",&x, &y) ;            Merg(x , y) ;        }        set<int> ans ;        ans.clear() ;        for(int i = 1;i <= n;i++){            ans.insert(father(i)) ;        }        printf("%d\n",ans.size()) ;    }    return  0 ;}

0 0
原创粉丝点击