2013年2月3日
摘要: //Bellman-Ford算法(含有负权的最短路径问题)#include <stdio.h>#define MAXM 100#define MAXN 10const int INF = 1<<20;int u[MAXM], v[MAXM], w[MAXM];int d[MAXN];int Bellman_Ford(int v0, int n, int m){ int i, k; for(i=0; i<n; i++) d[i] = INF; d[v0] = 0; for(k=0; k<n-1; k++){ for(i=0; i<m; i++){ ... 阅读全文
posted @ 2013-02-03 17:22 Still_Raining 阅读(220) 评论(2) 推荐(0)
摘要: 学会解决最小生成树(已学),最短路径问题(已学)以及拓扑排序(已学2013-02-1416:11:44),背包问题(已学)。(很好很好。以后就这样来。。2013-02-1416:12:07) 阅读全文
posted @ 2013-02-03 12:28 Still_Raining 阅读(444) 评论(0) 推荐(0)
摘要: 对于不含负权边的图求单源最短路径,Dijkstra算法是最高效的。但是在含负权边的图中,Dijkstra很可能得不到正确的结果,因为Dijkstra每次选的是当前能连到的边中权值最小的,在正权图中这种贪心是对的,但是在负权图中就不是这样了。比如1——>2权值为5,1——>3权值为6,3——>2权值为-2,求1到2的最短路径时,Dijkstra就会选择权为5的1——>2,但实际上1——>3——>2才是最优的结果。另外如果包含负环,则意味着最短路径不存在。因为只要在负权回路上不断兜圈子,所得的最短路长度可以任意小。 阅读全文
posted @ 2013-02-03 12:09 Still_Raining 阅读(10336) 评论(2) 推荐(5)