并查集简单模板
2012-07-24 08:57
260 查看
并查集结构:
查找祖先:
合并操作:
for (i = 0; i <= n; ++i) f[i] = i;
查找祖先:
int find(int x) { if (x != f[x]) { f[x] = find(f[x]); } return f[x]; }
合并操作:
经常使用的: void Union(int x,int y) { x = find(x); y = find(y); if (x != y) { f[y] = x; num[x] += num[y];//根记录子系的个数 } } 还有一种写法: void Union(int root1, int root2) { int x = FindSet(root1), y = FindSet(root2); if( x == y ) return ; if( rank[x] > rank[y] ) parent[y] = x; else{ parent[x] = y; if( rank[x] == rank[y] ) ++rank[y]; } }
相关文章推荐
- hdu 1213 (How Many Tables)(简单的并查集,纯模板)
- 并查集总结【模板】 例题:①简单POJ - 1611 The Suspects ②一般HDU - 1272 小希的迷宫
- hdu 1213 (How Many Tables)(简单的并查集,纯模板)
- hdu 1863(畅通工程)(简单的并查集,模板)
- 并查集简单模板
- HDU 1856 More is better(简单并查集) 【最大并查集人数模板】
- 简单并查集模板
- 并查集简单模板及其解释
- 最小生成树Kruskal算法【模板】 与 并查集 例题:简单 poj 2485 Highways
- jQuery 插件简单模板
- 关于IBatisNet的两个简单CodeSmith模板
- 简单背包问题模板
- 2014-1-18 dwt模板的可编辑区域设置 - 简单尝试 -
- 并查集模板 && 带权并查集模板
- 并查集(Union-Find Set)模板
- HDU 2544 最短路——简单的模板题 dijkstra
- hdu 1232 畅通工程(简单并查集)
- 简单的并查集
- 并查集模板
- hdu1281(Hungary模板 + 枚举)简单