图------最短路
蒋卫升
这个作者很懒,什么都没留下…
展开
-
牛客 F地铁(最短路)
????题意:给你n个站点,m条线路(n,m<=1e5),每条线路(边)有一个时间,代表乘坐这条线路花费的时间,有一个线路号(1-n),如果你换乘了,那么,消耗的时间就多了abs(pre_c - now_c),问你从站点1到站点n,至少需要多少时间。题解:因为这个换乘的性质导致了他不能用点来贪心,也就没有办法使用dijkstra,下面的样例可以说明。但是用边来贪心刚好满足性质,我们设d[i]代表从i点出发经过了第i条边的最小值,这样就符合了贪心的原理,我们就可以根据dijkstra求出所有原创 2020-10-14 11:20:12 · 239 阅读 · 0 评论 -
洛谷 P4009 汽车加油行驶问题 (分层图最短路)
题目要满足三个条件:1:汽车经过一条网格边时,若其 X 坐标或 Y 坐标减小,则应付费用 B ,否则免付费用。2:汽车在行驶过程中遇油库则应加满油并付加油费用 A。3:在需要时可在网格点处增设油库,并付增设油库费用 C(不含加油费用A )。4:汽车只能沿网格边行驶,装满油后能行驶 K 条网格边。思路:这题是洛谷网络流24题里的,但是题解都是清一色的最短路哈哈。建图跑最短路。根据费用分层,因为装满油只能走k次,所以我们分为k+1层,第0层代表满油,第一层代表消耗了一单位油。对于第一个条件:我们在这原创 2020-07-08 16:12:04 · 283 阅读 · 0 评论 -
HDU 6005 Pandaland(dijkstra求最小环)
linklinklink题意:给你一张无向图,让你求图中最小环。思路:用dijkstradijkstradijkstra求最小环,之前说dijkstradijkstradijkstra求最小环,是针对有向图,无向图也适用。我们枚举每条边,然后把这条边删除,以这条边的一个起点为源点,跑dijkstra,更新答案,但是这样会TLE,所以我们要剪枝,再dij求最短路的时候,如果某个时刻,最短路超过了答案,就可以不用求了。code:code:code: #include <bits/stdc++.h&原创 2020-06-20 11:37:35 · 322 阅读 · 0 评论 -
POJ 1734 Sightseeing trip (floyd求无向图最小环)
题意:给你一张无向图,让你求最小环,并且输出最小环的路径。思路:floyd求最小环。能用floyd求最小环要满足一下几个条件:点的个数小于500,因为floyd复杂度o(nnn)必须是无向图,因为floyd求最短路是枚举三个点,如果是有向图,两个点即可构成一个环。原理:最小环就是 min(a[k][i]+d[i][j]+a[j][k])min(a[k][i] + d[i][j] + a[j][k])min(a[k][i]+d[i][j]+a[j][k]),可以结合floydfloydfloyd最原创 2020-06-18 19:14:49 · 149 阅读 · 0 评论 -
POJ Telephone Lines (二分+dijkstra)
linklinklink题意:给你n个站点,m条无向边,求一条从1号站点到n号站点的路径,上面有k条路径免费的最大路径最小是多少?题解:看到最大路径最小应该要想到二分的,但是因为看到了k条路径免费,又往分层图那边想了呜呜。二分答案,然后dijkstra判定,如果,那条边大于mid,那么,那条边赋值为1,否则赋值为0,如果最短路小于K,说明这个答案是ok的,二分找即可。#include <cstdio>#include <queue>#include <cstring&原创 2020-06-16 11:48:58 · 144 阅读 · 0 评论 -
POJ 3259 Wormholes (判负环)
题目连接题意:给你m条无向边,w条有向边(权值为负),判断图中是否有负环?思路:bellmoon_ford最短路判负环,时间复杂度是o(VE)。#include <bits/stdc++.h>using namespace std;const int maxn = 505,inf = 1e5+10;struct node { int u,v,w;}a[5500...原创 2020-04-27 22:50:37 · 130 阅读 · 0 评论 -
POJ 2253 Frogger
题目链接题意:求起点到终点每条路径上最大值,最小:求最短(路径最长边)。思路:深刻理解最短路之后,发现d数组不一定每次保存的都是起点到终点的最短路,也可以保存,路径最长边。d数组只要满足dijkstra的贪心原理,其实可以是路径信息的。#include<cstdio>#include<vector>#include<queue>#incl...原创 2020-03-01 11:12:03 · 84 阅读 · 0 评论 -
POJ 1062 昂贵的聘礼 (dijkstra + 超级源点)
题意:Time Limit:1000MS Memory Limit:10000K Total Submissions:62736 Accepted:19019 Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币...原创 2020-02-29 21:33:02 · 201 阅读 · 0 评论 -
POJ 1860 Currency Exchange (判正环)
题意:给你一些钱和货币兑换点,问能不能换经过一系列交换,使得钱增值。思路:如果图中有正权环,那么就输出“YES”,否则,输出“NO”。#include<iostream>#include<cstdio>#include <vector>#include<queue>#define pb push_backusing names...原创 2020-02-29 15:47:26 · 117 阅读 · 0 评论 -
最小换乘 (dijkstra)
题目链接题意:给你单向公交车,求出1到n的最小换乘。思路:这个题目就是建图带点思维,怎么建图呢,把每条公路的前面的站点与后面的每个站点连单向边,并且让单向边的权值为1,然后dijkstra求出最短路即可。#include <bits/stdc++.h>#define pi pair<int,int>#define mk make_pairusing ...原创 2020-02-14 16:23:44 · 1040 阅读 · 0 评论 -
CSU 2005 Nearest Maintenance Point (bitset + 迪杰斯特拉)
题目链接题意:一个省由通过一些双向道路连接的n个城市(标记为1、2,…, n)组成。每条道路连接一对不同的城市。一家机器人公司在一些城市建立了维修点。现在,他们需要您的帮助来编写程序来查询距特定城市最近的维护点,如果最近的维修点有多个,打印出所有的维修点。思路:用bitset保存最短路的状态,如果最短路有多个,即d[v] == dist + d[u],那么bitset或运算算出即可。...原创 2020-02-10 12:03:28 · 181 阅读 · 0 评论 -
P4568 飞行路线 (分层图最短路)
题目链接题意:给你一张图,要你求出S到E的最短路,你可以使这张图中的k条边的值变成0.思路:我们把这张图复制k+1份,让相邻的两层之间连单向边,并且让边权值为0。最后设置一个super点,把每一层的终点都汇入这个点,注意也是单向边哦。用dijkstra求出最短路,那么答案就是d【super】。在写这个题的时候发现了骚操作,就是dijkstra的模板可以再改一下,就是没必要...原创 2020-02-09 21:22:03 · 259 阅读 · 0 评论 -
CSU 1808 地铁 (迪杰斯特拉)
题目链接第一次在这个oj上写题,这是中南大学(csu)的oj,题目是中文的。#include <bits/stdc++.h>#define pi pair<int,int>#define mk make_pair#define ll long longusing namespace std;const int maxn = 1e5;const l...原创 2020-02-09 14:21:25 · 173 阅读 · 0 评论 -
UVA 11374 A Airport Express (迪杰斯特拉)
题目链接题意:有两种不同的路,第一种是普通的线路,第二种是块线,你只有一张快线票,求S,到E的最短路。所以路线都是双向的,有可能必须使用快线票才能到达机场,保证最优解唯一。思路:首先预处理两个最短路,以S为源点的最短路,以E为源点的最短路,然后枚举快线,那么答案就是min(s[u] + e[v]+dist[u][v] , s[v]+e[u]+dist[v][u])的最小值,(u,v)为快...原创 2020-02-08 20:35:28 · 137 阅读 · 0 评论 -
UVA 10917 Walk through the forest (迪杰斯特拉 + 记忆化搜索)
题目链接题意:(真题意)一个人要回家 , 一条路一条路的走 关键就是一句 :He considers taking a path from A to B to be progress if there exists a route from B to his home that is shorter than any possible route from A.满足这个条件就是他...原创 2020-02-07 14:22:58 · 146 阅读 · 0 评论