最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其....
分类:
其他好文 时间:
2014-08-01 12:51:21
阅读次数:
237
题意:一些牛要去某一点参加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少需要花费多长时间。
思路:从聚会地点返回,相当于是从某一点到其他各个点的最短路径。从牛的家中走到聚会地点,可以把路径反过来变成从聚会地点到各个点的最短路径,两个最短路径值加起来就是每头牛所花费的最小时间,找出最大的即可。
我用了两个邻接表存路径,其实这道题用邻接矩阵存更好做,矩阵横纵坐标翻转就把路径...
分类:
其他好文 时间:
2014-08-01 00:03:40
阅读次数:
269
1.poj 3026 Borg Maze()http://poj.org/problem?id=3026在一个迷宫里由S找到所有A(找到过的A可以当S来用)所用最短步 ,即s到a中所有最短路径的和bfs+prim 广搜+最小生成树 难点:通过图建立map[][]数组 2.poj 2049 ...
分类:
其他好文 时间:
2014-07-31 16:36:46
阅读次数:
252
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其它全部节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但因为它遍历计算的节点非常多,所以效率低。 Dijkstra算法是非常有代表性的最短路算法,在....
分类:
其他好文 时间:
2014-07-31 16:33:06
阅读次数:
199
看了好久终于看懂了 ,首先你要知道 优先队列在这里的作用是什么。在Djsktra的算法中 我们需要有三个for其中有个for是要找到 连接中最小的点 并且返回该点 ,这里的优先队列把这个for循环替掉。typedef pair pii;priority_queue q; 这个优先队列是根据 pair...
分类:
其他好文 时间:
2014-07-31 09:38:25
阅读次数:
218
看了这些代码之后 总结了一下 其实就那三个for 循环 一:找与v有连接的点 。二:从这些连接的点找到最小,把他看成是下一次的v 。 三: 你要把有出现的那些边 更新掉 。 详解在代码里写出了 #include#include#includeusing namespace std ;#d...
分类:
其他好文 时间:
2014-07-31 09:34:55
阅读次数:
219
思路:这道题是基础的最短路径算法,可以拿来试一下自己对3种方法的理解
dijkstra主要是从第一个点开始枚举,每次枚举出当当前最小的路径,然后再以那最小的路径点为起点,求出它到其它未标记点的最短距离
bellman-ford
算法则是假设有向网中有n 个顶点、且不存在负权值回路,从顶点v1 和到顶点v2 如果存在最短路径,则此路径最多有n-1 条边。这是因为如果路径上的边数超过了...
分类:
其他好文 时间:
2014-07-31 00:11:16
阅读次数:
464
最短路径算法具体的形式包括:确定起点的最短路径问题:即已知起始结点,求最短路径的问题。适合使用Dijkstra算法。确定终点的最短路径问题:即已知终结结点,求最短路径的问题。在无向图中,该问题与确定起点的问题完全等同;在有向图中,该问题等同于把所有路径方向反转的确定起点的问题。确定起点终点的最短路径...
分类:
其他好文 时间:
2014-07-30 20:25:54
阅读次数:
178
个人观点,较prime算法,Kurskal算法更加的简单,这里我们只需要每一次去需找权值最小的那条边就好,在这里我们先可以利用sort进行快排,得到权值最小的map[i] 。 得到该条边的两个节点map[i].u 和map[i].v,这时候你需要判断能不能用这条边,因为最小生成树是不能形成回路,所以...
分类:
其他好文 时间:
2014-07-30 11:45:03
阅读次数:
219