ACDREAM 01F(并查集)
2015-04-21 13:00
357 查看
并查集
并查集三部曲1、初始化并查集数组
[code]void init() { for (int i = 1; i <= n; i++) { pa[i] = i; } }
2、查找x在并查集中的父亲
[code]int find(int x) { return x == pa[x] ? x : pa[x] = find(pa[x]); }
3、合并两个集合
[code]void Union(int a, int b) { int ra = find(a), rb = find(b); if (ra < rb) { pa[rb] = ra; } else { pa[ra] = rb; } }
相关文章推荐
- acdream 1685(并查集)
- ACdreamoj1056(带权并查集)
- ACdream 1727 Sequence
- 一道超级坑爹的水题(ACdream oj 无耻的出题人)
- ACdreamOJ 1154 Lowbit Sum (数字dp)
- ACdream OJ sgx和路飞 (二分答案+数位统计)
- Acdreamoj1115(数学思维称号)
- Acdreamoj1115(数学思维题)
- ACdream: Sum
- 斐波那契模n循环节 ACdream 1124喵喵的遗憾
- ACdream oj 1212 New Year Bonus Grant(贪心+拓扑排序)
- 一道超级坑爹的水题(ACdream oj 无耻的出题人)
- ACdream 1429 Rectangular Polygon
- ACdream 1112 Alice and Bob (博弈&&素数筛选优化)
- ACdream 1412 2-3 Trees
- ACdreamoj1110(多重背包)
- acdreamoj 瑶瑶饿了 完全背包
- ACDream 1064——完美数(数位DP)
- ACdreamOJ 1135 Collatz
- ACdreamoj 1417 思维题