并查集

TimeLimit:3000MS  MemoryLimit:128MB
64-bit integer IO format:%lld
未提交 | 登录后收藏 | 已有5人收藏了本题
Problem Description

并查集详解:http://blog.csdn.net/dellaserss/article/details/7724401


这里注意一下,用递归压缩路径的同学,可能会爆栈,从而导致

Runtime Error 建议用循环压缩路径

数据量比较大推荐使用scanf


Input

输入多组数据

每组数据第一行是两个整数n(1<=n<=10^6),m(1<=m<=10^6)。分别表示元素数、操作数(初始时每个元素以自己为一个集合,元素编号是1-n)

接下来m行,每行有如下几种输入:

union x y ——表示将x所在的集合和y所在的集合合并为一个集合。

same x y ——询问x和y是否为同一个集合、为同一个集合输出1,不同集合输出0

num x ——询问x所在的集合共有多少个元素

max x ——询问x所在的集合中元素编号最大是多少

setnum ——询问现在总共有多少个集合

Output

对于每个same、num、max、setnum操作输出一行,用一个整数表示答案。

SampleInput
5 10
setnum
same 1 2
union 1 2
same 1 2
union 2 3
same 1 3
union 4 5
setnum
max 1
num 4
SampleOutput
5
0
1
1
2
3
2
Submit
题目统计信息详细
总AC数356
通过人数181
尝试人数191
总提交量1011
AC率17.90%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: