poj 2524 Ubiquitous Religions 并查集
2012-07-05 04:19
363 查看
题意:给你n个学生和m对关系,每对关系表示这两个学生有同一个宗教信仰,求学校里最多有几种不同的宗教信仰。
分析:并查集,初始有n个几何,每次关系都把两个元素所在的集合合到一起。
View Code
分析:并查集,初始有n个几何,每次关系都把两个元素所在的集合合到一起。
View Code
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define re(i,n) for(int i=0;i<n;i++) #define re1(i,n) for(int i=1;i<=n;i++) #define ll long long const int maxn =50005; int p[maxn]; bool vis[maxn]; void init() { re(i,maxn) p[i] = i; } int find(int x) { return x == p[x] ? x : p[x] = find(p[x]); } void Union(int x , int y) { int a = find(x) , b = find(y); p[a] = p[b] = p[x] = p[y] = min(a , b); } int n ; ll m; int main() { int cas = 1; while(~scanf("%d%lld",&n,&m) && n) { init(); while(m--) { int u,v; scanf("%d%d",&u,&v); if(find(u) != find(v)) { Union(u , v); n --; } } printf("Case %d: %d\n",cas++,n); } return 0; }
相关文章推荐
- POJ-2524-Ubiquitous Religions(并查集 集合数量)
- POJ---2524-Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions(并查集)
- POJ2524->并查集
- POJ 2524 Ubiquitous Religions(简单的并查集)
- 并查集----poj2524
- POJ 2524 Ubiquitous Religions (最简单的并查集)
- poj 2524 Ubiquitous Religions(并查集)
- poj 2524 Ubiquitous Religions(并查集)
- poj 2524(并查集 链表实现)
- Ubiquitous Religions 【poj-2524】【并查集】
- Poj 2524 Ubiquitous Religions (并查集
- POJ 2524 并查集
- POJ2524——并查集
- POJ-2524 Ubiquitous Religions (并查集)
- POJ 2524 并查集
- POJ-2524 Ubiquitous Religions 并查集
- POJ2524-并查集
- POJ 2524 Ubiquitous Religions (并查集)
- Ubiquitous Religions(简单并查集 poj 2524 )