自然语言描述 1. 定义三个数组,分别为 2. 设v0为起始点,若与v0直接连接的vi,则记录其权值到D[i],否则记录∞到D[i]; 3. 循环下列语句直至V S为空集: (1)遍历D中的数据,若D[i]为最小值;记录vi到S中 (2)更新D中的数据(遍历vj∈(V S), D[ j ] = MI ...
分类:
编程语言 时间:
2020-05-19 12:53:52
阅读次数:
69
算法简述 SPFA算法其实是bellman-ford算法的队列优化形式,不再是简简单单的进行n-1次松弛,而是使用队列,能使路径变短(dist[y] > dist[x] + 1)且不在队列里的节点才入队进行松弛。 SPFA算法与Dijkstra算法的堆优化实现形式差不多,都是使用邻接表的方式。 代码 ...
分类:
编程语言 时间:
2020-05-16 21:02:59
阅读次数:
88
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra……所以下文#define dijstra dijkstra Dijskra是用来在有向图或者无向图中寻找任意两个点的最小距离的算法。它相较于spfa不会死掉(spfa死了),但是无法处理带负环的图和 ...
分类:
其他好文 时间:
2020-05-14 22:32:12
阅读次数:
91
Til the Cows Come Home "POJ 2387" 这题是最简单的最短路求解题,主要就是使用dijkstra算法,时间复杂度是$O(n^2)$. 需要注意的是,一定要看清楚题目的输入要求,是先输入边,再输入顶点,一开始我没看清,wrong answer了一次。 ...
分类:
其他好文 时间:
2020-05-09 20:41:51
阅读次数:
53
参考链接 Dijkstra算法 算法特点: 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。 算法的思路 Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短 ...
分类:
其他好文 时间:
2020-05-08 21:21:39
阅读次数:
90
图的最短路径&最小生成树的以点为中心思想的算法总结 在图的常见问题中,求最短路径和图的最小生成树问题最为常见。而关于这两种问题,有一种算法思想可以用几乎相同的代码解决两种不同的问题。 这种算法思想的基础基于点,分别对应了最短路径问题中的Dijkstra算法和最小生成树问题中的prim算法。 这种算法 ...
分类:
编程语言 时间:
2020-05-05 00:44:07
阅读次数:
64
弗洛伊德算法-Floyd(Floyd-Warshall)-求多源最短路径,求传递闭包Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法, 与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德 ...
分类:
编程语言 时间:
2020-04-30 20:54:56
阅读次数:
153
假如一堵墙上有一些钉子,这些钉子由许多细线连接起来,当我们试图去掉其他线,只留下较短的线使图钉连接起来,这就形成了最小生成树。 最小生成树正式描述是:给定无方向带权图G=(V,E),最小生成树集合为T,T为最小代价连接V中所有顶点所用边E的最小集合。 最小生成树常用Prim算法和Dijkstra算法 ...
分类:
其他好文 时间:
2020-04-29 23:38:26
阅读次数:
67
1.构造回文 题目: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。 思路:利用回文的性质,利用动态规划求原字符串和其反串的最大公共子序列。 2.筛选法求素数 算法举例 单源最短路径中的Dijkstra算法 贪婪算法 最小生 ...
分类:
其他好文 时间:
2020-04-26 21:12:30
阅读次数:
58
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 19349 Accepted Submission(s): 6763 Proble ...
分类:
编程语言 时间:
2020-04-26 10:38:03
阅读次数:
90