Yiner的ACM
成长的痕迹
C++博客
首页
新随笔
联系
聚合
管理
<
2011年3月
>
日
一
二
三
四
五
六
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
统计
随笔 - 29
文章 - 0
评论 - 2
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
DFS(1)
(rss)
DP(2)
(rss)
并查集(8)
(rss)
母函数(4)
(rss)
数论
(rss)
算法导论学习(1)
(rss)
随想
(rss)
随笔档案
2011年5月 (1)
2011年4月 (6)
2011年3月 (18)
2011年2月 (4)
搜索
最新评论
1. re: http://acm.hdu.edu.cn/discuss/public/post/reply.php?postid=2413&messageid=1&deep=0
rewrewr
--dsa
2. re: 约瑟夫问题
fafasf
--tianwen
阅读排行榜
1. 约瑟夫问题(1501)
2. 并查集 HDU1863(686)
3. strcmp返回值布尔类型的判断(523)
4. 母函数~Holding Bin-Laden Captive! (520)
5. 并查集 HDU1213(491)
评论排行榜
1. http://acm.hdu.edu.cn/discuss/public/post/reply.php?postid=2413&messageid=1&deep=0(1)
2. 约瑟夫问题(1)
3. 花生的问题(0)
4. 字符串处理 A-Metsys Laremun(0)
5. 今天复习母函数的一些感受(0)
并查集 POJ2524
已知有n个大学生,其中有m对宗教信仰相同的学生,请你估算这n个学生中最多有多少种宗教信仰。
依旧是简单的并查集应用。宗教信仰的最大值为学生数n,因此一开始把n个学生作为n个集合,对给出的每对大学生 a 和 b ,如果他们在不同的集合,就合并他们,然后宗教数减一。
这次依旧用到了路径压缩,只不过上一次写的是非递归,这次写了一个递归版本。也就是搜索完成回溯的时候"顺便"将当前节点的父节点直接指向祖先节点。
题目大意解释来自Slyar Home (
www.slyar.com
) 转载请注明,谢谢合作。
/**/
/*
如果两个学生的信仰一样
则总的宗教个数减一
*/
#include
<
iostream
>
#include
<
stdio.h
>
using
namespace
std;
int
sum,n,m;
int
father[
50001
];
void
makeset(
int
x)
{
for
(
int
i
=
1
;i
<=
x;i
++
)
{
father[i]
=
i;
}
}
int
findset(
int
x)
//
查
{
if
(x
!=
father[x])
{
father[x]
=
findset(father[x]);
}
//
回溯
return
father[x];
}
void
Union(
int
a,
int
b)
{
int
x
=
findset(a);
int
y
=
findset(b);
if
(x
==
y)
return
;
sum
=
sum
-
1
;
father[y]
=
x;
}
int
main()
{
int
l
=
1
;
while
(scanf(
"
%d%d
"
,
&
n,
&
m)
!=
EOF)
{
if
(n
==
0
&&
m
==
0
)
break
;
sum
=
n;
makeset(n);
int
first,second;
for
(
int
i
=
1
;i
<=
m;i
++
)
{
scanf(
"
%d%d
"
,
&
first,
&
second);
Union(first,second);
}
printf(
"
Case %d: %d\n
"
,l,sum);
l
++
;
}
return
0
;
}
posted on 2011-03-30 11:24
Yiner
阅读(298)
评论(0)
编辑
收藏
引用
所属分类:
并查集
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
并查集 HDU1863
并查集~最小生成树 HDU1233
并查集 HDU1232
并查集 HDU1856
并查集 HDU1213
并查集 POJ2524
并查集 POJ1611
并查集
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理