Kruskal算法是根据权来筛选节点,也是采用贪心算法。

///     Kruskal

///初始化每个节点为独立的点,他的祖先为自己本身
void made(int n) {
for(int i=; i<=n; i++)
father[i]=i; ///father[i]存的父亲的编号
} ///找x这个点的祖先
int find(int x) {
if(x!=father[x])
father[x]=find(father[x]);
return father[x];
} ///按权的大小排序
int cmp(const void *a,const void *b) {
tree *aa=(tree *)a;
tree *bb=(tree *)b;
return aa->val-bb->val;
} ///参数n为节点个数,m为权的个数
bool kru(int n,int m) {
int i,j;
qsort(p,m,sizeof(p[]),cmp);
ans=;
made(n);
int cnt=;
for(i=;i<m;i++)
{
int xx=find(p[i].x);
int yy=find(p[i].y);
if(xx==yy) continue;
father[yy]=xx;
ans+=p[i].val;
cnt++;
}
if(cnt!=n-) return false;
else return true;
}

Kruskal算法求最小生成树的更多相关文章

  1. 利用Kruskal算法求最小生成树解决聪明的猴子问题 -- 数据结构

    题目:聪明的猴子 链接:https://ac.nowcoder.com/acm/problem/19964 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个 ...

  2. 克鲁斯卡尔(Kruskal)算法求最小生成树

    /* *Kruskal算法求MST */ #include <iostream> #include <cstdio> #include <cstring> #inc ...

  3. Prim算法和Kruskal算法求最小生成树

    Prim算法 连通分量是指图的一个子图,子图中任意两个顶点之间都是可达的.最小生成树是连通图的一个连通分量,且所有边的权值和最小. 最小生成树中,一个顶点最多与两个顶点邻接:若连通图有n个顶点,则最小 ...

  4. kruskal算法求最小生成树(jungle roads的kruskal解法)

    注意: 注意数组越界问题(提交出现runtimeError代表数组越界) 刚开始提交的时候,边集中边的数目和点集中点的数目用的同一个宏定义,但是宏定义是按照点的最大数定义的,所以提交的时候出现了数组越 ...

  5. Prime算法 与 Kruskal算法求最小生成树模板

    算法原理参考链接 ==> UESTC算法讲堂——最小生成树 关于两种算法的复杂度分析 ==> http://blog.csdn.net/haskei/article/details/531 ...

  6. 859. Kruskal算法求最小生成树(模板)

    给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给定一张边带权的无向图G=(V, E),其中V表示 ...

  7. Kruskal算法求最小生成树 笔记与思路整理

    整理一下前一段时间的最小生成树的算法.(其实是刚弄明白 Kruskal其实算是一种贪心算法.先将边按权值排序,每次选一条没选过的权值最小边加入树,若加入后成环就跳过. 先贴张图做个示例. (可视化均来 ...

  8. Kruskal算法求最小生成树(POJ2485)

    题目链接:http://poj.org/problem?id=2485 #include <iostream> #include <stdio.h> #include < ...

  9. AcWing 859. Kruskal算法求最小生成树 稠密图

    //稠密图 #include <cstring> #include <iostream> #include <algorithm> using namespace ...

随机推荐

  1. Day03 知识点

    一.单行注释与多行注释 # 用来标记不运行的程序 pycharm 快捷键 ctrl+/ 可以在程序上方 也可以在程序后面 (PEP8) 多行注释 用三引号,一般推荐三双引号来做注释. 二.数据类型 ( ...

  2. docker 镜像保存为文件及从文件导入镜像的方法

    1.保存镜像为文件 docker save -o 要保存的文件名 要保存的镜像 举例: docker save -o 2.从文件载入镜像 docker load --input 文件或者docker ...

  3. tcp中 fast_open 学习 nginx 13年的版本开始支持该功能

    https://www.cnblogs.com/lanjianhappy/p/9868622.html 三次握手的过程中,当用户首次访问server时,发送syn包,server根据用户IP生成coo ...

  4. Mybatis学习笔记6 - #{}和${}

    #{}:可以获取map中的值或者pojo对象属性的值.${}:可以获取map中的值或者pojo对象属性的值. 区别: #{}:是以预编译的形式,将参数设置到sql语句中:PreparedStateme ...

  5. Python 的命名空间

    Python命名空间的本质: 一.命名空间的定义: 二.命名空间的查找顺序: 三.命名空间的生命周期: 四.通过locals()和globals() BIF访问命名空间. 重点是第四部分,我们将在此部 ...

  6. Kudu compaction design

    不多说,直接上干货! http://blog.csdn.net/lookqlp/article/details/51438109

  7. zuul路由网关

    zuul作为网关组件,主要用来管理api请求接口(统一对外暴露,负载均衡),身份认证,流量监控等.它是通过servlet来实现的,核心是一系列过滤器,可以在请求的发起跟相应返回阶段进行一系列的处理. ...

  8. https的设计原理

    参考文章: https://www.cnblogs.com/zhangshitong/p/6478721.html http://blog.jobbole.com/113883/ 这两篇文章写的非常好 ...

  9. C# 压缩 解压 复制文件夹,文件的操作

    命名空间:namespace System.IO.Compression 压缩: //目标文件夹 string fileDirPath = "/Downloads/试题" + us ...

  10. node.js的介绍

    1.node.js的优点 性能高 开发效率高 应用范围广 2.安装 下载地址:http://nodejs.cn 下载git 3.框架选择 express(成熟),koa,Hapi