HDU 1232
来源:互联网 发布:有什么金融软件 编辑:程序博客网 时间:2024/05/29 16:05
#include <cstring>#include <iostream>using namespace std;int father[1001];//初始化时表示各个点之间还没有边,,每个点就是一个集合void unit(int n){ for(int i = 0 ; i <= n; i++){ father[i] = i; }}int findRoot(int x){ //x是根 if(x == father[x]){ return x; }else{ //找到x的根 return findRoot(father[x]); }}void combine(int a , int b){ father[b] = a;}int main(){ int m , n , a , b; while(cin >> n >> m && n != 0){ //初始化d 爹 数组 unit(n); //m代表边的数量 for(int i = 1 ; i <= m ; i++){ cin >> a >> b; //找到a b 的爹 int aRoot = findRoot(a); int bRoot = findRoot(b); //如果a的根与b的根不相同,就合并根 if(aRoot != bRoot) combine(aRoot , bRoot); } //用于记录集合数量(我们知道 :n 个不联通子集最少添加 n - 1 条边 就会变成联通子集 ,即: 本题说的添加最少的公路) int num = 0; for(int i = 1 ; i <= n ; i ++){ if(father[i] == i) ++num; } cout << num - 1 << endl; } 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
- Java开发中的23种设计模式详解(转)
- OpenSuSE13.2 安装 oracle 12c
- Ubuntu 安装 redmine
- 拌面
- Android通知MediaScanner扫描指定的文件
- HDU 1232
- HDU 1530 Maximum Clique 图论最大团问题
- NSObject类别-NSThreadPerformAdditions
- Tornado Application对象实例化时"debug=Ture"参数的作用原理
- 深搜hdu1312
- 数据类型和循环结构第二天
- 指针和引用
- java命令执行jar包的方式
- MFC绘图控制-设备描述表