最短路径问题,首先想到了贪心算法实现的dijkstra算法;这道题我用了链表的存储方式,其实用邻接矩阵也可以,主要为了练手,并且链表比矩阵要节约空间;
题目描述:
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
输入:
输入n,m,点的编号是1~n,然后是m行,每行4个数 ...
分类:
其他好文 时间:
2014-12-04 15:36:05
阅读次数:
165
数据结构课图作业之最短路。 1 #include 2 #include 3 using namespace std; 4 5 #define N 120 6 #define INF 0x3f3f3f3f 7 #define _clr(x, y) memset(x, y, sizeof(x)) ...
分类:
编程语言 时间:
2014-12-03 14:15:24
阅读次数:
112
1031_Campus题目链接:http://soj.me/1031题目大意:给出四个校区的一些地点之间的距离,地点名用字符串来表示,问某两个地点之间的最短路径长度,典型的单源最短路径题目思路:单源最短路径问题可以用dijkstra算法实现,这道题比较麻烦的是用字符串来表示地点,我用的处理方法是建立...
分类:
其他好文 时间:
2014-11-26 10:56:02
阅读次数:
232
一个人的旅行
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 20267 Accepted Submission(s): 7081
Problem Description
虽然草儿是个路痴(就是在杭电待了一年...
分类:
编程语言 时间:
2014-11-22 18:56:12
阅读次数:
205
1321_Robot题目链接:http://soj.me/1321题目大意:给一个矩阵,每一个点上面的数字表示走到该点需要的花费,找出给定起点到终点的最小总花费思路:每个格子看作一个结点,花费可以看作从上一个点走到这个点的路程,那么这道题就是典型的最短路径问题,可以用Dijkstra算法解决。一开始...
分类:
其他好文 时间:
2014-11-21 01:26:41
阅读次数:
235
Dijkstra算法,是有向/无向加权图(就是每条边都有长度)中,计算两个点之间最短距离的有效方法,在使用堆排序的情况下,它的时间复杂度为O(Nlog(N+M)),(这里N代表节点数,M代表边数)很接近线性了,还是非常好的。
不过,Dijkstra算法有一个限制,就是它只适用于边长不为负的图。如果一张图里有负数长的边长,那么Dijkstra算法就不适用了。这时候就需要另外的算法了。
为什么不适用呢?其实很容易就可以找到反例。...
分类:
编程语言 时间:
2014-11-20 23:46:29
阅读次数:
278
一:说明
(1)使用floyd实现各个站点的计算记录和路径
(2)站点获取和初始距离根据外部文件得到
(3)结果以外部文件的形式存储
(4)站点间转乘,认为初始值也为1
(5)代码注释比较详细,如有疑问或者代码有,请联系我,谢谢
(6)java中二维数据的定义:
a: float[][] numthree; //定义一个float类型的2维数组
...
分类:
编程语言 时间:
2014-11-13 12:58:05
阅读次数:
209
Dijkstra算法又称单源点距离最短问题设一个图中有V0,V1,V2,V3...等顶点,这里设求的是V0到V1,V2,...的最短距离基本思想V0到剩余顶点的直接距离dist[](不经过其他任何节点,没有联通的设为无穷大)中,找出一个最小的,设其顶点为V1,这里我们就求出了V0到V1的最短距离。将...
分类:
编程语言 时间:
2014-11-12 00:20:15
阅读次数:
273
图示:模版: 1 /* 2 Dijkstra计算单源最短路径,并记录路径 3 4 m个点,n条边,每条边上的权值非负,求起点st到终点et的最短路径 5 6 input: 7 n m st et 8 6 10 1 6 9 1 2 6 10 1 3 2 1...
分类:
编程语言 时间:
2014-11-10 23:15:18
阅读次数:
327
题意:
求有向图中最短路和比最短路大1的路径数量。
思路:
需要理解dijkstra算法中dis[n]数组的含义,设cnt[i]表示到点i的最短路径数量,cnt1[i]表示到点i比最短路大1的路径数量。在运行dijkstra算法的过程中每次获得最小dis[i]的时候可以对所有dis[v]+w(v,i)==dis[i]的v做如下更新cnt[i]+=cnt[v],cnt1[i]+=cnt1[v]...
分类:
其他好文 时间:
2014-11-09 15:23:07
阅读次数:
190