![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
Cow and Fields(最短路思维)
题意:思路:首先说一些性质,比如我们操作a,b点,如果a,b不在1~n的最短路径上,那么对答案是没有贡献的。如果在1到n的最短路径上呢?也就是我们要求Max(dist[a]+dist2[b]+1),dist1代表从1开始bfs,dist2代表从n开始bfs最短路径,O(n^2)枚举肯定不好,我们可以按照dist[a]-dist2[a]排序一下,然后这个答案就可以O(N)枚举得到了,我们在枚举的时候记录一下最大的dist[x],当前的dist2[b]已经固定了,更新一下答案就好了,最后注意要和原本图的最原创 2021-08-07 21:29:21 · 255 阅读 · 0 评论 -
P1629 邮递员送信
有一个邮递员要送东西,邮局在节点 11。他总共要送 n-1n−1 样东西,其目的地分别是节点 22 到节点 nn。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 mm 条道路。这个邮递员每次只能带一样东西,并且运送每件物品过后必须返回邮局。求送完这 n-1n−1 样东西并且最终回到邮局最少需要的时间。输入格式第一行包括两个整数,nn 和 mm,表示城市的节点数量和道路数量。第二行到第 (m+1)(m+1) 行,每行三个整数,u,v,wu,v,w,表示从 uu 到 vv 有一条通过时间为 w原创 2020-09-08 17:41:53 · 532 阅读 · 0 评论 -
acwing 340. 通信线路
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的...原创 2020-03-22 10:21:08 · 283 阅读 · 0 评论 -
AcWing 342. 道路与航线
农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为1~T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路 i或者航线 i 连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也...原创 2020-03-22 09:48:15 · 320 阅读 · 0 评论 -
dfs dijkstra结合
重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。在一条路径上花费的时间等于路径上所有公路需要的时间之和。佳佳的家在车站 1,他有五个亲戚,分别住在车站 a,b,c,d,e。过年了,他需要从自己的家出发,拜访每个亲戚(顺序任意),给他们送去节日的祝福。...原创 2020-03-21 18:37:36 · 449 阅读 · 0 评论 -
最短路练习之最优乘车
H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到...原创 2020-03-20 23:03:13 · 384 阅读 · 0 评论 -
最短路变形~所有路径中最小的在单条路径中最大的距离
Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of tourists' sun...原创 2020-03-19 23:22:44 · 205 阅读 · 0 评论 -
最短路变形求起点到终点所有路径中最大的在一条路径中最小的边
BackgroundHugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand business. But he needs a clever man who tells him whether there really is a way from the place his cust...原创 2020-03-19 23:19:07 · 389 阅读 · 0 评论 -
公牛排队 dijkstra反向建边
One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way ro...原创 2020-03-19 23:14:01 · 304 阅读 · 0 评论 -
spfa 找正环
Several currency exchange points are working in our city. Let us suppose that each point specializes in two particular currencies and performs exchange operations only with these currencies. There can...原创 2020-03-19 23:11:01 · 357 阅读 · 0 评论 -
Dijkstra算法(堆优化版)
题目:给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n,m≤105,图中...原创 2020-02-10 13:43:44 · 414 阅读 · 0 评论 -
Dijkstra算法 朴素版
#include<iostream>#include<string.h>using namespace std;int n,m;const int N=5100;const int M=100010;int st[N],d[N];int g[N][N];int dijkstra(){ memset(d,0x3f,sizeof(d)); ...原创 2020-02-10 12:34:38 · 250 阅读 · 0 评论 -
floyd算法
这个算法都是用在求图中任意两个点之间的距离,时间复杂度为O(n3)代码如下#include<iostream>#include<algorithm>#include<string.h>using namespace std;int n,m,k;const int N=410;int d[N][N];void floyd(){ for...原创 2020-02-10 12:17:03 · 221 阅读 · 0 评论 -
spfa判断负环
题目:给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你判断图中是否存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式如果图中存在负权回路,则输出“Yes”,否则输出“No”。数据范围1≤n≤2000,1≤m≤10000,图中涉及边长绝对值均不超过10000。输入样例...原创 2020-02-09 23:02:42 · 352 阅读 · 0 评论 -
spfa()算法
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出”impos...原创 2020-02-09 22:54:32 · 202 阅读 · 0 评论 -
bell_man算法
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。注意:图中可能 存在负权回路 。输入格式第一行包含三个整数n,m,k。接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示从1号点到n号点的最多经过k...原创 2020-02-09 22:45:21 · 505 阅读 · 0 评论 -
最短路 青蛙约会
题目大致意思就是1想见2,它可以通过石头来中转,让路径中每次跳的最大距离最小。输出极限距离。AC代码:#include<iostream>#include<string.h>#include<math.h>#include<algorithm>using namespace std;const int inf=0x3f3f3f3f;c...原创 2020-02-07 23:36:40 · 229 阅读 · 0 评论 -
最短路变形
题目点这里要注意,输出的是最大的能通过的货物重量,只需要在原来最短路代码上修改一下就可。#include<iostream>#include<string.h>#include<algorithm>using namespace std;const int N=2010;int d[N],g[N][N];bool vis[N];int n,m;...原创 2020-02-07 23:33:15 · 251 阅读 · 0 评论