最近做图的题比较多,除了克鲁斯卡尔和floyd,像广搜,普里姆,Bellman-Ford,迪杰斯特拉,SPFA,拓扑排序等等,都用到图的邻接表形式。数据结构书上表示邻接表比较复杂,一般形式如下: 1 typedef struct Node 2 { 3 int dest; ...
分类:
其他好文 时间:
2014-12-26 00:48:34
阅读次数:
378
此题可以用bellman-ford算法来求解。bellman-ford算法是求解最短路径,此题是求解
“最大路径”,条件与松弛条件相反,因此求的是无限松弛的最大正权路径,可以用bellman-ford算法去解题。
此题中的“最大路径”其实就是求改变点数下是否有增加更新点。
我们用dis[i]来表示第i种货币的钱数。
我们求最大那么需将dis[i]初始话为0,再用bellman-fo...
分类:
其他好文 时间:
2014-12-25 22:10:42
阅读次数:
230
SPFA的全称是Shortest Path Faster Algorithm,一看名称八成就是中国人起的名字,因为外国人起算法名称一般都会写上自己的名字,很少谦虚。实际上,这是西南交通大学段凡丁同学于1994年发表的,是针对Bellman-Ford算法的改进。在此不过多介绍背景,直接介绍SPF...
分类:
编程语言 时间:
2014-12-23 12:03:03
阅读次数:
184
Dijkstra算法虽好,但是不能解决带负权边的图,而Bellman-Ford就是解决这个问题的
在一个含有n个顶点的图中,任意两点之间的最短路径最多包含n-1条边,最短路径中不可能包含回路.
最短路径是一个不包含回路的简单路径,回路分为正权回路(回路权值之和为正)和负权回路(回路权值之和为负). 如果最短路径中包含正权回路,那么去掉这个回路,一定可以得到更短的路径;如果最短路径中包含...
分类:
其他好文 时间:
2014-12-04 23:15:21
阅读次数:
283
WormholesTime Limit:2000MSMemory Limit:65536KTotal Submissions:32109Accepted:11660DescriptionWhile explor...
分类:
其他好文 时间:
2014-12-02 22:23:01
阅读次数:
258
给定一个源点,求最短路径,那么存在以源点为根的最短路径树因为最短路径具有最优子结构的性质,所以我们可以先求出树的第一层,然后再求出树的第二层,以此类推bellman_ford算法就是按照这种思想求最短路径的。因为树最多有n-1层,所以只要n-1次循环即可,每次循环i访问所有的边,然后松弛路径,就求出...
分类:
编程语言 时间:
2014-11-23 15:49:09
阅读次数:
191
一直不知道差分约束是什么类型题目,最近在写最短路问题就顺带看了下,原来就是给出一些形如x-y,=k的标准形式注意点:1. 如果要求最大值想办法把每个不等式变为标准x-yx-y=k的标准形式,然后建立一条从y到x的k边,求出最长路径即可2.如果权值为正,用dj,spfa,bellman都可以,如果为负...
分类:
其他好文 时间:
2014-11-18 23:46:45
阅读次数:
252
适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论的重点。...
分类:
编程语言 时间:
2014-11-16 00:30:13
阅读次数:
253
列举了深度优先搜索的递归和非递归算法,Dijkstra最短路径算法,
基于Bellman-Fort最短路径算法的改进型广度优先搜索算法,
Floyd-Warshall最短路径算法的原始版和变化版
本文是阅读《啊哈!算法》后的学习笔记,代码与教材中有些差异,若有错误请指正,谢谢!...
分类:
编程语言 时间:
2014-11-13 22:31:20
阅读次数:
277
from wiki: 图算法 基本遍历 深度优先搜索 · 广度优先搜索 · A* · Flood fill 最短路径 Dijkstra · Bellman-Ford · Floyd-Warshall · Kneser图 最小生成树 Prim · Kruskal 强连通分量 Kosaraju算法 · ...
分类:
编程语言 时间:
2014-11-10 06:24:58
阅读次数:
253