HDU-1232 畅通工程(并查集)
来源:互联网 发布:查看网络延时命令 编辑:程序博客网 时间:2024/06/04 19:06
#include <stdio.h>#include <string.h>#define max_N 1000int par[max_N];int rank[max_N];void init(int n)//初始化par {for(int i=1;i<=n;i++){par[i]=i;rank[i]=0;}}int find(int x)//查找x的根节点 {while(x!=par[x]) {x=par[x];}return x;}void unite(int x,int y){x=find(x);//x的根节点 y=find(y);//y的根节点 if(x==y)return;if(rank[x]<rank[y])//将深度大的树的根节点作为深度小的根节点 {par[x]=y;}else{par[y]=x;if(rank[x]==rank[y])//如果两棵树的深度相同 各相加一 rank[x]++;}}int main(){int N,M;while(scanf("%d",&N)&&N&&scanf("%d",&M)){int sum=0;init(N);int a,b;for(int i=0;i<M;i++){scanf("%d%d",&a,&b);unite(a,b);}for(int i=1;i<=N;i++){ if(par[i]==i)//通过判断根节点数目来判断各集合数目 {sum++;}}printf("%d\n",sum-1);}return 0;}
0 0
- hdu 1232 畅通工程 并查集
- HDU 1232 畅通工程 并查集
- HDU 1232 畅通工程 (并查集)
- hdu 1232畅通工程 并查集
- hdu 1232 畅通工程 并查集
- HDU--1232--畅通工程--并查集
- 畅通工程-并查集-hdu 1232
- hdu 1232 畅通工程并查集
- HDU 1232 畅通工程 并查集
- hdu 1232 畅通工程 并查集
- hdu 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- HDU 1232 畅通工程 并查集
- 并查集:hdu 1232 畅通工程
- HDU - 1232 畅通工程 <并查集>
- hdu 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- AI研究之 | 人工智能终端芯片研究报告
- unity渲染顺序规则探究(基于5.5.0f3版本)
- frameset框架的用法
- RecyclerView瀑布流设置左、右、上、下的距离一样
- 二叉查找树——查找、插入、删除 思路+代码(Java)
- HDU-1232 畅通工程(并查集)
- 谷歌推出人工智能自动绘图工具AutoDraw
- cordova调用本地SQLite数据库的方法
- 浅谈SerialPort控件的使用(C#)
- 深入理解JVM之基本构架
- ROS入门记录 [3]
- mysql:The user specified as a definer ('xxx'@'%') does not exist 解决方法
- java线程系列---Runnable和Thread的区别
- C语言复习笔记 12