【OI之路】03图论算法-3并查集
2017-09-13 13:30
162 查看
建议前往我的网站获得最佳体验。
3.3.1定义
并查集,顾名思义就是有“合并集合”和“查找集合”两种操作的关于数据结构的一种算法。用途
1、维护无向图的连通性。支持判断两个点是否在同一连通块内,和判断增加一条边是否会产生环。
2、用在求解最小生成树的Kruskal算法里。
初始化
自己是自己的老大
3.3.2 代码
找老大: int findfa(int x)0 { if(fa[x]==x) return fa[x]=findfa(fa[x]); return fa[x]; } 合并: void join(int x,int y) { int fx=findfa(x),fy=findfa(y); if(fx!=fy) fa[fx]=fy; } 检测环: for(int i=1;i<=边数;i++) { int q=findfa(b[i].x); int w=findfa(b[i].y); if(q==w) return 1;//如果在一个集合,就找到了环 join(q,w); }
3.3.3 进阶练习
魏总数星星星球大战
相关文章推荐
- 【OI之路】03图论算法-1最短路之单源最短路(SPFA)
- 【OI之路】03图论算法-2最短路之全源最短路(Floyd)
- 图论算法-并查集
- 图论算法(7) --- 用并查集求最小生成树
- 图论算法----并查集中的路径压缩
- 02_核心概念--03_组件
- 03-商城 用户模块注册实现
- Lexus Extroic OpenCart 2.X 自适应主题模板 ABC-0648-03
- 小希的迷宫(简单并查集)
- D3DX8指南03_Matrices
- hnsd11348tree(并查集)
- poj1703 Find them,Catch them 【并查集】
- 【Luogu3457】POW-The Flood(并查集)
- HDU 4738 Caocao's Bridges 桥+并查集
- 【hdu3635】Dragon Balls —— 并查集
- 问题集锦03:使用sqlcmd连接数据库出错
- 03-linux系统的运行的级别
- mooc_03_排序 - 堆和堆排序.md
- [03]语法、关键保留字及变量
- Roads not only in Berland CodeForces 25D 并查集