
最短路
文章平均质量分 60
xiaozhuaixifu
这个作者很懒,什么都没留下…
展开
-
HDOJ/HDU---1874 畅通工程续 最短路(dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874这个题有一个小小的tricky,就是要考虑重边的情况,如果遇到重复的边,则直接取最小的边。Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优原创 2013-07-03 13:38:27 · 1442 阅读 · 0 评论 -
HDOJ/HDU 2544 最短路---dijkstra算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544这题的思路可以见这里(同一类型):http://blog.youkuaiyun.com/xiaozhuaixifu/article/details/9232921#includeusing namespace std;const int maxn=101;const int intmax=999原创 2013-07-04 12:10:16 · 1092 阅读 · 0 评论 -
Bellman-Ford 算法 单源最短路径问题
当给定的图是一个DAG,且存在 负边的时候,Dijkstra算法是不能用的,这时,只要图中不存在负圈,我们采用此算法能得出源点到每一个点的最短距离:#include#include#includeusing namespace std;const int INF=999999;const int maxn=100+10;struct edge{ int from,to,cost;原创 2013-08-07 22:51:16 · 1303 阅读 · 0 评论 -
任意两点间的最短路径---floyd_warshall算法
使用DP的思想:考虑从i到j的最短路径经过K一次和完全不经过K两种情况来讨论:DP[i][j]=min(dp[i][j],dp[i][k]+dp[k][j])#include#include#includeusing namespace std;const int maxv=100;const int INF=999999;int weight[maxv][maxv];int原创 2013-08-08 14:30:32 · 1079 阅读 · 0 评论 -
单源最短路径---Dijkstra 算法--路径还原
#include #include #include #include #include using namespace std;const int maxn=100;const int INF=999999;int pre[maxn];bool visited[maxn];int d[maxn],cost[maxn][maxn],n,m; //n vertexs,1,2,..原创 2013-08-09 13:27:24 · 1374 阅读 · 0 评论 -
poj 2139 Six Degrees of Cowvin Bacon (Floyd 算法)
题:http://poj.org/problem?id=2139任意两点之间的最短路径问题:#include#includeusing namespace std;const int MAXN=301;const int INF=99999;int d[MAXN][MAXN],dis[MAXN],N,M;void solve(){ int ans=INF; for(i原创 2013-09-13 21:10:09 · 1550 阅读 · 0 评论 -
poj 3259 Wormholes (判断图是否存在负圈)
题目:http://poj.org/problem?id=3259思路:根据BELLMAN-FORD算法,如果图中不存在从s可达的负圈,那么最短路不过经过同一个顶点两次,也就是说最多经过V-1条边,如果存在负圈,那么这个循环更新次数会在第n次也会更新,实际上会无限更新,越来越小,所以一开始对所以点i,都把d[i]初始化为0,那么可以检查出所有的负圈:#include#incl原创 2013-09-13 22:29:54 · 1891 阅读 · 0 评论