题目链接:poj 2524 Ubiquitous Religions
题目大意:大学生有着自己的信仰,给出n表示有n个大学生,m表示有m次调查,给出a b,表示说a和b的信仰是相同的,现在问说这n个大学生有多少中信仰。
解题思路:并查集求联通分量,每次有两个不同的集合合成一个新的集合,联通分量就减少1.
#include <stdio.h>
#include <string.h>
const int N = 50005;
int n, m, f[N];
int getfar(int x) {
return x == f[x] ? x : f[x] = getfar(f[x]);
}
int main () {
int cas = 1;
while (scanf("%d%d", &n, &m) == 2 && n + m) {
for (int i = 0; i <= n; i++)
f[i] = i;
int a, b;
for (int i = 0; i < m; i++) {
scanf("%d%d", &a, &b);
int p = getfar(a), q = getfar(b);
if (p != q) {
n--;
f[q] = p;
}
}
printf("Case %d: %d\n", cas++, n);
}
return 0;
}
分享到:
相关推荐
poj2492 A Bug's Life并查集应用的扩展,希望可以给大家带来用处
POJ 1988 并查集。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
这份代码用C++实现了经典算法并查集,来源于poj题目1182
并查集基础 acm 算法 poj oi 并查集基础.ppt
poj 1611 The Suspects 代码 并查集的应用
POJ1089 并查集可以解决 并查集加路径压缩
数据结构并查集的相关资料,包括几篇并查集的论文,还有POJ上面几道关于并查集的题目的源代码
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
poj分类poj分类poj分类poj分类
北大POJ1159-Palindrome 解题报告+AC代码
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
西北工业大学POJ作业100份源代码. 每个人的poj顺序是不一样的, 不过还是有参考价值的.
poj 食物链代码.带权并查集,关键是找到其中的一些关系式.
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
POJ1503解答 POJ1503解答,正确答案(已通过POJ)