Kruscal算法实现最小生成树 主方法 1 import java.util.Arrays; 2 import java.util.Comparator; 3 import java.util.Scanner; 4 5 public class Solution4 { 6 static class ...
分类:
编程语言 时间:
2020-04-10 11:53:22
阅读次数:
91
最小生成树两连 并查集优化的克鲁斯卡尔算法和优先队列+链式前向星优化的普利姆算法 Kruskal Kruskal是常用的最小生成树算法,算法利用贪心思想,每次选择没用过且不构成环的边的最小边,直到选择了n 1条边,通常我们用并查集这个数据结构去优化,优化后的Kruskal算法复杂度是$O(mlogm ...
分类:
其他好文 时间:
2020-04-07 12:27:31
阅读次数:
86
贪心策略:总是考虑在当前状态下局部最优的策略,一定满足最优子结构,不断地把问题归纳为更小的相似地子问题 拟阵:许多用贪心算法求解的问题,可以表示求带权拟阵的最大权独立子集问题 区间贪心: 一、区间不相交问题 总是选择左端点最大的区间 struct node{ int x,y; }a[maxn]; b ...
分类:
编程语言 时间:
2020-02-05 13:23:10
阅读次数:
68
路由环路 路由环路,就是数据包不断在这个网络传输,始终到达不了目的地,导致掉线或者网络瘫痪 解决方法 解决路由环路问题的方法,概括来讲,主要分为六种: 1.定义最大值; 2.水平分割技术; 3.路由中毒; 4.反向路由中毒; 5.控制更新时间; 6.触发更新。 下面我们就来一一讲解各种解决方法的实现 ...
分类:
其他好文 时间:
2019-11-25 23:24:08
阅读次数:
219
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个 ...
分类:
编程语言 时间:
2019-11-09 23:57:40
阅读次数:
195
次小生成树是指在一个树中除最小生成树外第二小的生成树,因此它是在最小生成树算法上衍生的。首先在求出最小生成树后,假如我们要加上一条树外的边,这样就会形成一个闭环,然后将这个闭环的最大 的边删除,那么剩下的依然是一个树,如果这个树<=最小生成树,那么它就是次小生成树。 如果我们要加边的话,加的肯定是树 ...
分类:
编程语言 时间:
2019-11-09 23:43:45
阅读次数:
112
~~我不信还有人比这个全~~ 总共三种,大家最熟悉的$Kruskal$,$Prim$以及不那么熟悉的$Bor?vka$。 时间复杂度:$Kruskal:\mathcal{O}(MlogM),Prim:\mathcal{O}(N^2),Bor?vka:\mathcal{O}(MlogN)$ 堆优化$P ...
分类:
编程语言 时间:
2019-10-28 21:16:33
阅读次数:
159
题目链接 问题描述: 简单的最小生成树的题,将路径按cost从小到大排序,利用克鲁斯塔尔求最小生成树算法就行。 代码: ...
分类:
其他好文 时间:
2019-10-27 12:45:01
阅读次数:
77
最小树形图 个人理解就是求指定起点的有向图的最小生成树。 算法的大概步骤如下: 1. 遍历所有边,求得一步到达点v的距离in[v]和前驱pre[v].(若除根节点外有的点不可以被到达则无解) 2. 遍历所有点v,ans+in[v] (相当于从离v最近的点走到了v),看其是否在环上(一直跑pre,能跑 ...
分类:
其他好文 时间:
2019-10-06 16:43:33
阅读次数:
92
一、分治法 递归,找最大值最小值,整数相乘,归并排序,快速排序,线性时间选择,最近点对问题 二、动态规划 0-1背包问题 ,矩阵相乘问题,装配线调度问题,最长公共子序列,最优二分检索树,凸多边形最优三角剖分 三、贪心法 背包问题,活动选择问题,哈夫曼编码,最小生成树算法(Kruskal 和 Prim ...
分类:
编程语言 时间:
2019-08-12 23:38:19
阅读次数:
123