最短路径问题
最短路径
化身孤岛的鲸o
我祈祷拥有一颗透明的心灵
展开
-
PIPIOJ 1175: 货运费用 最短路径
题目:http://39.106.164.46/problem.php?id=1175代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstring>#include<string>#include<vector>#define MAX 1005原创 2020-10-12 23:09:42 · 120 阅读 · 0 评论 -
PIPIOJ 1286: PIPI运货 最短路径
题目:http://39.106.164.46/problem.php?id=1286代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstring>#include<string>#include<vector>#define MAX 105原创 2020-10-12 23:01:30 · 357 阅读 · 0 评论 -
CSU P2326 path 最短路+树的直径
CSU P2326 path 最短路+树的直径题解:通过画图观察,以及贪心考虑得出一个结论,从一个点出发,如果要回到原来的点,则所有边都要访问两次;而在这 道题中访问到最后一个点则立即停下来,那么最短路程和就是最后走到离这个点最远的那个点停下,即所有边的长度 * 2-这个点走到离它最远点的距离。而由于有多个出发点,那是我们利用从树的直径的性质,也就是在一棵树上的一个点的最远点一定是某一条树...原创 2020-02-24 00:13:21 · 187 阅读 · 0 评论 -
天梯赛 L3-022 地铁一日游 (30分) Floyed+dfs
天梯赛 L3-022 地铁一日游 (30分) Floyed+dfs题解:这道题的结点数较少,所以我们可以用Floyed求出最短路径。然后我们对于每一个站点i,都求出在花费相同时可以到达的最远的站点,把这些站点都作为i的候选站点。接着对于每一次查询,我们用一次dfs把从开始结点出发可以到达的所有结点都打上标记,接着我们只要输出标记等于本次查询序号的结点即可。注意坐地铁是可以来回往返的,...原创 2020-02-22 23:18:41 · 1877 阅读 · 0 评论 -
天梯赛 L3-005 垃圾箱分布 (30分) 最短路径
天梯赛 L3-005 垃圾箱分布 (30分) 最短路径题解:PAT甲级 1072 Gas Station 单源最短路和这道题基本上是一样的。#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#includ...原创 2020-02-20 14:53:45 · 290 阅读 · 0 评论 -
洛谷 P1144 最短路计数 无向无权图(bfs或者优化dijkstra)
洛谷 P1144 最短路计数 无向无权图(bfs或者优化dijkstra)题意:题目的意思是给出一个无向无权图,图中结点的编号为1~n,把编号为1的结点定义为初始结点,求这个初始结点到其他每个点的最短路径有多少条。注意:可能包含自环或者重边。题解:首先这是一张无向无权图,所以可以很自然地想到bfs,当然,用优化的dijkstra也是可以的。其实这道题自环对结果没有影响的,因为一个点到自...原创 2020-01-18 21:15:38 · 526 阅读 · 0 评论 -
洛谷 P1119 灾后重建 理解Floyed算法
洛谷 P1119 灾后重建 理解Floyed算法题解:要理解Floyed算法的原理,每次取前k个点作为中转,不断更新。不能硬背模板。代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#incl...原创 2020-01-18 18:52:51 · 256 阅读 · 0 评论 -
洛谷 P1346 电车 Floyed算法模板
洛谷 P1346 电车 最短路题解:首先要进行建图,这是一个有向图,把开口的边的权值设为0,没有开口的边的权值设为1。因为n比较小,可以用dijkstra,也可以用floyed代码如下:(1)Dijkstra O(n2)#include<iostream>#include<algorithm>#include<stdio.h>#include&...原创 2020-01-18 11:32:57 · 237 阅读 · 0 评论 -
洛谷 P1462 通往奥格瑞玛的道路 二分+Dijkstra优先队列优化
洛谷 P1462 通往奥格瑞玛的道路 二分+Dijkstra优先队列优化代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<string>#include<vec...原创 2020-01-10 22:59:18 · 583 阅读 · 0 评论 -
洛谷P1339 [USACO09OCT]热浪Heat Wave 简单最短路
洛谷P1339 [USACO09OCT]热浪Heat Wave 简单最短路思路:这道题的n较小,直接用dijkstra即可。代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<string>#include&...原创 2020-01-10 14:18:53 · 260 阅读 · 2 评论 -
PAT甲级 1111 Online Map 单源最短路+DFS
题目大意:给出一张图有n个结点,m条边,每条边有自己的长度以及需要的时间(长度和时间没有必然联系),有些边是有向边,有些边是无向边,再给出起点和终点,我们要求出距离最短的路径和花费时间最少的路径,若两条路径距离相同,我们要选择花费时间最少的,若两条路径花费时间相同,我们要选择经过结点数最少的。如果最后要求的两条路径是相同的,我们只输出一条路径信息即可。代码如下://单源最短路+DFS...原创 2019-10-21 14:05:00 · 189 阅读 · 0 评论 -
PAT 甲级 1018 Public Bike Management (DFS+Dijkstra)
代码如下:单纯的Dijkstra://单源最短路径+选择最优路径//错了两个点//因为不能把路径上下一个结点的自行车车送往上一个结点#include<iostream>#include<stack>#define MAX 1000#define INF 0x3f3f3f3fusing namespace std;int visit[MAX];//...原创 2019-05-01 00:00:07 · 245 阅读 · 0 评论 -
PAT甲级 1087 All Roads Lead to Rome DFS+Dijkstra
代码如下://DFS+Dijkstra#include<iostream>#include<map>#include<vector>#include<string>#define INF 0x3f3f3f3fusing namespace std;int n,k;//n为城市个数,k为路径条数int mp[205][205],...原创 2019-09-04 14:18:21 · 117 阅读 · 0 评论 -
PAT甲级 1003 Emergency 单源Dijkstra最短路
Solution:这道题的意思是给定起点和终点,求最短路。但还有一个要求,就是每个城市有救援队,我们要在求得最短路的情况下集结沿途尽可能多的救援队人数。代码如下:#include<iostream>#define INF 0x3f3f3f3fusing namespace std;int visit[505];int mp[505][505];int num[50...原创 2019-07-13 11:00:29 · 397 阅读 · 0 评论 -
PAT甲级 1030 Travel Plan 单源最短路
代码如下://最短路径#include<iostream>#include<stack>#define MAX 505#define INF 0x3f3f3f3fusing namespace std;int visit[MAX];//访问数组int dis[MAX];//记录最短距离int c[MAX];//记录每个结点的当前代价int cost...原创 2019-07-15 20:48:58 · 209 阅读 · 0 评论 -
PAT甲级 1072 Gas Station 单源最短路
Solution:题目要求:选择建立一个最佳的加油站,前提是这个加油站必须能连通所有的居民住所,并使得所有居民住所中距离这个加油站最近的距离尽可能远,若有多个选择,则选择平均距离最小的加油站,若仍然有多个选择,则选择序号较小的加油站。代码如下://单源最短路#include<iostream>#include<math.h>#include<algor...原创 2019-09-01 15:27:45 · 203 阅读 · 0 评论 -
Dijkstra 邻接链表+优先队列优化
代码如下:#include<iostream>#include<queue>#include<stdio.h>#include<vector>#define INF 0x3f3f3f3f#define MAX 10005using namespace std;int visit[MAX];int dis[MAX];int n...原创 2019-05-05 11:13:10 · 569 阅读 · 0 评论 -
单源最短路径 Dijkstra path记录路径
代码如下:#include<iostream>#include<stack>#define MAX 10000#define INF 0x3f3f3f3fusing namespace std;int visit[MAX];//访问数组int dis[MAX];//记录最短距离int path[MAX];//记录路径int mp[MAX][MAX];...原创 2019-04-28 13:13:29 · 1054 阅读 · 0 评论 -
单源最短路径板子——标准Dijkstra算法+优先队列优化的Dijkstra算法
代码如下:#include<iostream>#define MAX 10005#define WHITE 0#define BLACK 1#define GRAY 2#define INF 0x3f3f3f3fusing namespace std;int n,e;//n为顶点个数,e为边数int m[MAX][MAX];//m为图的邻接矩阵int d[MA...原创 2019-04-15 00:47:15 · 712 阅读 · 2 评论