
K短路
ITCharge
高效率编程,慢节奏生活。
展开
-
POJ 2449 Remmarguts' Date【SPFA】【A*】
题目大意:公主要求王子通过第k短的路径去找她。给出了N个点,M条单向边的图。也给出了 起点s(王子所在的点)、终点t(公主所在的点)和k。问:K短路是多少。 思路:第一次做K短路的题目。用的A*+SPFA来做的。下边简单说下这个算法。 使用链式前向星存储图。安装下边步骤来做。 (1)将有向图的所有边正向、反向分别存入两个不同的边集(Edges,Edges1)中。用反向边集, 以所求终点t为源点,利用SPFA或Dijkstra求解出所有点到t的最短路径,用Dist[i]数组来表示点i 到点t的最短距离。 (2原创 2015-01-26 16:40:41 · 1393 阅读 · 0 评论 -
K短路【模板】
A*+SPFA算法: (1)将有向图的所有边正向、反向分别存入两个不同的边集(Edges,Edges1)中。用反向边集,以所求终点t为源点,利用SPFA或Dijkstra求解出所有点到t的最短路径,用Dist[i]数组来表示点i到点t的最短距离。 (2)建立一个优先队列,将源点s加入到队列中。 (3)从优先队列中取出最小的点p,如果点p == t,则计算t出队的次数。如果当前路径长度就是s到t原创 2015-05-04 22:06:16 · 1907 阅读 · 0 评论