代码部分有点问题,具体算法没问题, 最近期末考,要过段时间才会修改 //邻接矩阵,具体情况看上一篇的图的实现template<class T>class MGraph {public: MGraph(T a[], int n, int e); void DFS(int v); void BFS(in ...
分类:
编程语言 时间:
2020-01-03 09:12:23
阅读次数:
70
描述:在分阶段执行操作的情况下,在每一阶段都选择当前最后的解,而不顾将来如何。顾名思义:贪心法/贪婪法是“只顾当下,不计未来”;另外,贪心法并不一定总是最优解,但是一个比较不错的可行解。 应用举例:Prim算法,Kruskal算法,Dijkstra算法 Prim算法简述:Prim算法使得求得得解连续 ...
分类:
编程语言 时间:
2019-12-23 13:08:23
阅读次数:
105
最小生成树:如果无向连通图是一个网,它的所有生成树中必有一棵边的权值总和最小的生成树,称这棵生成树为最小生成树。 Prime算法 假设G=(V,E)为一网图,其中V为网图中所有顶点的集合,E为网图中所有带权边的集合。设置两个新集合U和T,其中集合U用于存放G的最小生成树中的顶点,集合T存放G的最小生 ...
分类:
其他好文 时间:
2019-12-20 20:38:25
阅读次数:
97
数据结构第七到十章 期末复习总结 写在前面:期末数据结构继续给爷冲! 第七章:图无 无向完全图:有n个顶点的话,含n(n-1)/2条边, 有向完全图:有n个顶点则含n(n-1)条弧 简单路径:若路径中的中顶点不重复出现,则该路径称为简单路径。从顶点v1到顶点v5的两条路径都为简单路径。 简单回路:除 ...
分类:
其他好文 时间:
2019-12-19 11:29:55
阅读次数:
111
接上文,研究了一下算法之后,发现大话数据结构的代码风格更适合与前文中邻接矩阵的定义相关联,所以硬着头皮把大话中的最小生成树用自己的话整理了一下,希望大家能够看懂。 一、最小生成树 1,问题 最小生成树要解决的是带权图 即 网 结构的问题,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的 ...
分类:
编程语言 时间:
2019-12-18 14:37:54
阅读次数:
91
Kruskal算法:使用并查集求最小生成树,引入parent数组 1 #include <iostream> 2 #include <vector> 3 #include <queue> 4 #include <string> 5 #include <climits> 6 7 using names ...
分类:
编程语言 时间:
2019-12-17 15:03:54
阅读次数:
80
一、算法介绍 Kruskal算法是一种用来查找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪心算法的应用。和Boruvka算法不同的地方是,Kruskal 算法在图中存在相同权值的边时也有效。最小生成树是一副 ...
分类:
编程语言 时间:
2019-12-02 00:20:12
阅读次数:
159
什么时最小生成树? 一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用Kruskal算法或Prim算法求出。 在一给定的无向图g=(V,E)中,(u,v)代表连接顶点u与顶点v的边,而w(u,v)代表此边的权重,若存在T为E ...
分类:
其他好文 时间:
2019-11-24 12:09:52
阅读次数:
72
神仙题。 先考虑平方级别的暴力怎么做。 明显答案有单调性,先二分 $c$。 先最短路预处理 $dis_u$ 表示 $u$ 到离它最近的充电站的距离(一开始把 $1$ 到 $k$ 全部丢到优先队列里就行了)。 考虑当前站在 $u$ 点上时,剩余的电量是 $x$。注意到由于起点是充电站,就一定有 $x\ ...
分类:
其他好文 时间:
2019-11-24 00:11:33
阅读次数:
141
贪心算法 定义:在每一步选择中都进行当前状态下的最优解, 从而希望导致结果是最好算法。贪心算法在最优子结构问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。举例:最小生成树的算法 (Prim MST、Kruskal MST、Dijkstra’s algorithm) 相比于动态规划 相同 ...
分类:
编程语言 时间:
2019-11-21 12:03:18
阅读次数:
94