并查集主要处理集合,它可以快速
- 判断一个元素e是否属于集合S;
- 合并两个集合;
缺点:
- 删除一个元素e;
hdu1272
题目的要求有两点:
- 所有房间都联通;
- 不存在回路(环);
即 节点个数=边数+1
AC code
1 | import java.io.*; |
值得注意的是这里的数据样本,每个节点对都是唯一的,没有出现 5 2 2 5 这种情况。
如果直接是 0 0,需要输出 Yes。
这道题中的数据有点巧,没有很刁钻,所以递归可以过。假如输入的数据是
100000 99999 99999 99998 …… 3 2 2 1 1 100000 0 0
那么递归就惨了。