poj-2524 Ubiquitous Religions 并查集

来源:互联网 发布:感情淡了 知乎 编辑:程序博客网 时间:2024/04/29 23:37

题目链接


题目大意:输入n,m代表有n个帮派,下面输入m行x,y,代表学生x,y同一个帮派,问总共有多少个帮派。

#include <stdio.h>#include <string.h>#include <math.h>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int maxn = 50005;const int Mod = 1000000007;const int inf = 1<<30;int n,m;int p[maxn];int find( int x ){return x == p[x]?x:p[x] = find( p[x] );}void merge( int a,int b ){int x = find( a );int y = find( b );if( x != y ){p[x] = y;}}int main(){#ifndef ONLINE_JUDGE   freopen("data.txt","r",stdin);   #endifint a,b,c = 1;while( scanf("%d%d",&n,&m) != EOF,(n||m) ){for( int i = 1; i <= n; i ++ )p[i] = i;for( int i = 1; i <= m; i ++ ){scanf("%d%d",&a,&b);merge( a,b );}int ans = 0;for( int i = 1; i <= n; i ++ )if( p[i] == i )ans ++;printf("Case %d: %d\n",c++,ans);}return 0;}


0 0
原创粉丝点击