最短路径
花无凋零之时
这个作者很懒,什么都没留下…
展开
-
【POJ】2253 Frogger
求最短路径中单次跳跃的最大值,可以使用Floyd算法求解:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int N = 200 + 10;const int INF = 0x3f3f3f3f;double graph[N][N];double x[N], y[N];void Floyd(.原创 2022-03-15 11:05:20 · 181 阅读 · 0 评论 -
【POJ】1125 Stockbroker Grapevine
题目大意是要找出从一个结点到其他所有结点总共所花时间的最小值,所以可以采用Floyd算法求出每个结点到其他结点的最短路径,之后找到每个结点花的最长时间,再找到最小值即可:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 110;const int INF = 9999;int dis[N][N];void Floyd(in.原创 2022-03-14 13:47:45 · 414 阅读 · 0 评论 -
【POJ】1502 MPI Maelstrom
题目大意就是找到第一个结点到其他结点最短距离的最大值,所以首先使用Dijkstra算法找到第一个结点到其他结点的最短距离,之后再找到最大值即可:#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <vector>#include <queue>using namespace std;const int N =.原创 2022-03-13 18:41:37 · 575 阅读 · 0 评论 -
【POJ】2387 Til the Cows Come Home
求最短路径的基本题目,直接用Dijkstra算法即可:#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <queue>using namespace std;const int N = 1000 + 10;const int INF = 999999;struct Edge{ int to, length;.原创 2022-03-13 17:11:10 · 431 阅读 · 0 评论 -
【牛客网】KY28 I Wanna Go Home
这道题有个最多只能转变1次阵营的限制,由题意可知,M出发地是1号,目的地总是2号,从1->2必须转变一次阵营,所以就要求在这之前不能出现2-1的情况,出现了就不符合题目的要求,所以就在Dijkstra中判断松弛条件的时候加一个判断语句就能求解了:#include<iostream>#include<cstdio>#include<vector>#include<queue>#include<cstring>using name.原创 2022-02-18 20:30:07 · 191 阅读 · 0 评论 -
【牛客网】KY152 最短路径问题
这道题是求最短路径,由于n最大可以为1000,而Floyd算法的复杂度为O(n3),因此会超时,所以只能用Dijkstra算法,题目要求我们不仅求出最短路径,还要求出最短路径下的最少花费:#include <iostream>#include <vector>#include <queue>#include <climits>#include <cstring>using namespace std;const int N = .原创 2022-02-07 17:39:34 · 510 阅读 · 0 评论