并查集-poj2524-Ubiquitous Religions

来源:互联网 发布:手机淘宝优惠券转化 编辑:程序博客网 时间:2024/05/21 20:24

题意是有n个人,每个人有一个信仰,每次给出一队人的信仰是一样的,问一共有多少种信仰。

#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#include<cstring>using namespace std;int fa[111111];int find_fa(int n) {    return fa[n]==n?n:find_fa(fa[n]);}void inti(int n) {    for(int i=1;i<=n;i++) {        fa[i]=i;    }}int main(){    int n,m;    int kase=0;    while(scanf("%d%d",&n,&m)&&(m+n)!=0) {        inti(n);        int tt=n;        int a,b;        for(int i=1;i<=m;i++) {            scanf("%d%d",&a,&b);            int fx=find_fa(a);            int fy=find_fa(b);            if(fx!=fy) {                fa[fy]=fx;                tt--;            }        }        printf("Case %d: %d\n",++kase,tt);    }    return 0;}


0 0
原创粉丝点击