并查集板子
来源:互联网 发布:何以知之的以 编辑:程序博客网 时间:2024/06/05 02:10
int pre[1000 ];int find(int x) //查找根节点{ int r=x; while ( pre[r ] != r ) //返回根节点 r r=pre[r ]; int i=x , j ; while( i != r ) //路径压缩 { j = pre[ i ]; // 在改变上级之前用临时变量 j 记录下他的值 pre[ i ]= r ; //把上级改为根节点 i=j; } return r ;} void join(int x,int y) //判断x y是否连通, //如果已经连通,就不用管了 //如果不连通,就把它们所在的连通分支合并起,{ int fx=find(x),fy=find(y); if(fx!=fy) pre[fx ]=fy;}
按秩合并:
// 初始化n个元素void init(int n){ for(int i=0;i<n;i++) { parent[i]=i; rank[i]=0; // 初始树的高度为0 }}// 合并x和y所属的集合void unite(int x,int y){ x=find(x); y=find(y); if(x==y) return ; if(rank[x]<rank[y]) parent[x]=y; // 合并是从rank小的向rank大的连边 else { parent[y]=x; if(rank[x]==rank[y]) rank[x]++; }}
阅读全文
0 0
- 并查集板子
- 查分约束系统板子
- HDU3938 并查集 并查集
- 并查集(集并查)
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- 并查集学习
- 并查集
- 并查集
- 并查集
- js对象名称
- JAVA学习51_ Java Split如何去除一个空格和多个空格
- 对于spring-mvc的设计理解
- Linux kill, killall, kill -9
- Yii2 01-关于安装Yii2框架
- 并查集板子
- 计算几何总结
- .NET漫游指南-005-INotifyProperChanged和List<>,ObservableCollection<>使用
- Linux下用于查看系统当前登录用户信息的4种方法
- 全文检索之sphinx源码分析--索引创建流程
- 数据库设计中的范式规范
- ZooKeeper集群安装后无法启动ZooKeeper JMX enabled by default
- XtraBackup应用说明(支持TokuDB)
- Hbase的TTL字段超时设置测试