最短路
关于最短路的题目与题解,大部分题目都是洛谷或者纪中OJ的
卧室踩被
The weakest OIer
展开
-
洛谷 P5960 【模板】差分约束算法
DescriptionDescriptionDescriptionSolutionSolutionSolutionSPFA:SPFA:SPFA:对于每个Xi−Xj≤YX_i - X_j\leq YXi−Xj≤Y,建一条边(j,i)=Y(j, i) = Y(j,i)=Y然后要有一个超级源点000,对于i∈[1,n]i∈[1,n]i∈[1,n]建一条边(0,i)=0(0,i)=0(0,i)=0跑一遍最短路/最长路最短路可以求出x≤0x\leq 0x≤0的最大解最长路可以求出x≥0x\geq原创 2020-11-05 21:33:51 · 305 阅读 · 1 评论 -
洛谷 P3385 【模板】负环
题目链接解题思路SPFA1 到 xxx 的最短路上的边数一定不多于 n−1n-1n−1。否则至少有一个结点被重复经过,这说明存在环,且经过该环能更新该结点的 disdisdis 值,即存在负环。判断节点入队次数,若≥n\geq n≥n则存在负环Accepted codeAccepted\ codeAccepted code#include<queue>#include<cstdio>#include<cstring>using n原创 2020-10-28 19:33:10 · 176 阅读 · 0 评论 -
洛谷11月月赛 III Div.2 T2 基础最短路练习题
题目大意:给定n个点m条边的无向简单联通图G,边有边权。保证没有重边和自环。定义一条简单路径的权值为路径上所有边边权的异或和。保证G中不存在简单环使得边权异或和不为00。Q次询问x到y的最短简单路径。解题思路:我是跑了遍SPFA 每次查询的答案就是dis[x] xor dis[y]要卡SPFA的话会T但是没卡我们可以dfs一遍求出每个点到1的距离然后O(1)查询Accepte...原创 2019-11-13 19:57:18 · 324 阅读 · 0 评论 -
道路重建
题目大意:一个无向图,n个点m条边(路),有d条边(路)烂掉了,你的任务是修复一些道路使A与B之间的连接恢复,并要求修复的道路长度最小。解题思路:n&amp;lt;=100floyd可以过至于怎么做:我们要求修的道路最短要修多长所以好的就不用管了,边权设为0就好还有这道题是双向边注意一下Accepted code:#include&amp;lt;queue&amp;gt;#include&amp;lt原创 2018-09-22 08:00:32 · 201 阅读 · 0 评论 -
最短路(path)
#include&amp;amp;amp;lt;queue&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstring&amp;amp;amp;gt;#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;原创 2018-09-13 15:55:17 · 152 阅读 · 1 评论 -
单源最短路径(弱化版)
题目大意:给出一个有向图,请输出从S出发到所有点的最短路径长度。解题思路:看到数据范围 Spfa 然后int错了,我就把inf 1099^{9}改成了2147483647 一看,dis会炸掉,于是我把dis改成了long long,保险期间,inf 也改成了long long看H*B的码风,我打算试一试,发现并不爽,但是我懒得改Accepted code:献上本...原创 2018-09-12 16:16:18 · 149 阅读 · 0 评论 -
医院设置
题目大意:给一个无向图,然后,每个点有一定的居民数量,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。解题思路:n&lt;=100 于是就可以用FloydAccepted code:#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;原创 2018-09-06 16:33:16 · 182 阅读 · 0 评论 -
最短路
题目大意:给定n个点的带权有向图,求从1到n的路径中边权之积最小的路径。解题思路:SPFA模板Accepted code:#include&lt;cstdio&gt;#include&lt;queue&gt;#define N 1005#define inf 1000000000#define MOD 9987using namespace std;st..原创 2018-09-06 16:15:24 · 190 阅读 · 0 评论 -
[USACO07NOV]牛栏Cow Hurdles
题目解题思路:今天突然迷上了最短路的题目 本来想巩固一下SPFA(毕竟老师讲课的那次我请假了) 结果看到了Floyd的题目,于是也一起做了Accepted code:#include<cstdio>#include<cctype>#include<cstring>#include<algorithm>#define...原创 2018-08-29 23:05:02 · 218 阅读 · 0 评论 -
Mzc和体委的争夺战
题目大意:n个点,m条边,从1出发到n的最小边权和 边权&gt;0解题思路:SPFA模板Accepted code:#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;int a[201][201],n;int min(int x,int y) { retur原创 2018-08-29 20:06:01 · 164 阅读 · 3 评论 -
租用游艇
题目大意:长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<=j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n 所需的最少租金。对于给定的游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i解...原创 2018-08-29 20:03:23 · 590 阅读 · 0 评论 -
过路费 C组模拟赛
题目大意:给出一个图,每个点都有点权,每条边都有边权,K次询问使得x到y的(边权+最大点权)最小解题思路:数据比较小,Floyd就可以过 然后稍稍变形就可以了源程序:#include<cstdio>#include<cstring>#include<algorithm>#define min(a,b) a<b...原创 2018-07-08 18:59:21 · 153 阅读 · 0 评论 -
医院设置
题目大意:Description 设有一棵二叉树(如右图)。其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如 右图中,若医院建在: 1处,则距离和=4+12+2*20+2*40=136 3处,则距离和=4*2+13+20+40=81 ………….原创 2018-01-12 20:09:37 · 197 阅读 · 0 评论 -
小萨的烦恼
题目大意:Description 圣诞节又要到了!小萨希望和自己心仪的MM一起出去度过一个浪漫的的圣诞节。他进行了详尽的准备,找到了N个很适合他们去约会的好地方,但无奈小萨和他的MM都是初三学校,晚上必须回学校上晚修,没有足够的时间让他们走遍每一个地方。迫于无奈,小萨选择了一个最合适的地方S。小萨打算和他的MM一起步行到那个地方,那样他们就有很多时间来聊天玩乐,但是无奈时间有限,小萨决原创 2018-01-12 19:59:08 · 154 阅读 · 0 评论 -
商店选址问题
题目大意:Description 给出一个城市的地图(用邻接矩阵表示),商店设在一点,使各个地方到商店距离之和最短。 Input 第一行为n(共有几个城市); N小于201 第二行至第n+1行为城市地图(用邻接矩阵表示);Output 最短路径之和;Sample Input 3 0 3 1 3 0 2 1 2 0Sample Output 3原创 2018-01-12 19:52:39 · 746 阅读 · 0 评论 -
SSL 3.02 模拟赛 T2 GF打Dota 【最短路】【次短路】
题目大意:有一个无向图,求最短路和次短路解题思路:跑两次SPFASPFASPFA,第一次以111为起点,把111到iii的最短距离记录为disi,0dis_{i,0}disi,0第二次以nnn为起点,把nnn到iii的最短距离记录为disi,1dis_{i,1}disi,1然后枚举每个点,尝试以其为中转站,记为点iii,枚举与iii相连的边,边的终点记录为yyy,那么这样的路径长度就...原创 2019-03-02 16:47:41 · 162 阅读 · 0 评论 -
洛谷 P3393 逃离僵尸岛
题目大意:传送门解题思路:将所有被控制的点视为点000,将所有与被控制的点连边的点连向000,暂定所有边权为111然后以000为起点跑一遍dijdijdij,如果dis[i]≤sdis[i]\leq sdis[i]≤s,那么iii是危险点将与iii连边的边权定为QQQ,与被控制点的连边边权定为infinfinf,其它边为PPP特殊的,起点为1 or n1\ or\ ...原创 2019-01-31 12:10:13 · 505 阅读 · 0 评论 -
洛谷 P1119 灾后重建
题目大意:传送门解题思路:看到数据很明显的FloydFloydFloyd但是问题来了,如果每次询问都跑一遍FloydFloydFloyd时间复杂度是:O(Qn3)O(Qn^3)O(Qn3),会TTT飞我们发现询问的时间是递增的,那么我们可以在FloydFloydFloyd找中转站的循环,也就是第一层循环中判断是否能在中转站修好之后走Accepted code:Acc...原创 2019-01-31 10:46:05 · 207 阅读 · 0 评论 -
洛谷 P3906 Geodetic集合
题目大意:nnn个点mmm条遍的无向图,如果点iii在点uuu到点vvv的最短路径(uuu到vvv的边数最少)上,那么记这些点为集合I(u,v)I(u,v)I(u,v)有kkk个询问,问集合I(u,v)I(u,v)I(u,v)解题思路:每次询问以u为起点跑一遍DijDijDij,将以uuu为起点到其他点的最短路记为dis1dis1dis1,再以vvv为起点跑一遍DijDijDij,记为d...原创 2019-01-31 10:38:01 · 247 阅读 · 0 评论 -
JZ Day12 T3 san
题目大意:小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一。由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短路。小明有严重的强迫症,认为奇数很不和谐,如果他某一天从一个地点去另一个地点走过的路程是奇数,就会很不爽,但他又不想白白多走路,所以遇到最短路长度是奇数的情况就只能忍了。如果从某个地点A 到另一个地点B 的最短...原创 2019-01-30 21:03:05 · 194 阅读 · 0 评论 -
JZOJ Day9 B组 T2 游历的路线
题目大意:有nnn个点,每个点之间的边权是一个周期。求从111出发经过mmm条边到nnn的最小权值解题思路:dpdpdp设fi,jf_{i,j}fi,j表示第iii天到达第jjj个点的最少花费则得出转移方程:fi,j=min(fi,j,&nbsp;fi−1,k+ak,j,(ai,j,0−1)&nbsp;mod&nbsp;k+1)f_{i,j} = min(f_{i,j},\ f_{...原创 2019-01-27 21:43:54 · 303 阅读 · 0 评论 -
Sorting It All Out
题目大意:一共有N个变量,给出M个关系1.如果给出关系之间有矛盾,则输出Inconsistency found after D relations.其中D为在给出的第D中关系中发现有矛盾2.如果没有矛盾并且在前d个关系中找出所有变量之间的大小关系,则输出:Sorted sequence determined after d relations: ABCD.ABCD 表示 A &amp;amp;amp;lt;...原创 2018-12-07 20:44:15 · 257 阅读 · 0 评论 -
[USACO11JAN]道路和飞机Roads and Planes
题目大意:T个城镇有M1条道路,M2条航线,0<=道路的花费<=10000,-10000<=航线的花费<=10000,可以通过道路从ai到bi或从bi到ai(双向边),航线只能从ai到bi且不能通过任何道路或航线从bi到ai(只能出不能进)。求S到所有城镇的花费解题思路:解法一(未A):我们先把所有双向边(道路)加到图里,然后就有若干个联通块,把每个联通块看...原创 2018-12-06 16:39:48 · 366 阅读 · 0 评论 -
Telephone Lines 电话线
题目大意:在一个无向图中找出一条1到n的路径,我们可以选择K条边使其权值变为0,我们的目的是使得路径上第K+1大的边最小解题思路:解法一:我们用dp的思想dis[x][p]表示1到x中已经指定p条边权值为0,我们用SPFA对其进行转移,也就是说我们会从dis[x][p]中转移出两个状态:dis[y][p] 和 dis[y][p+1]怎么转移?因为dis[y][p]表示的是1到y中已经...原创 2018-11-30 21:33:00 · 247 阅读 · 0 评论 -
10.24 TRAVEL
题目解题思路:枚举lll,用spfa求出最大的rrr我们发现会超时又发现lll一定是某一条边得lll所以我们将所有边按照l排序再枚举所有lll,枚举同事求出rrr判断是否是最优解Accepted code:#include<queue>#include<cstdio>#include<cstring>#include<iostrea...原创 2018-11-01 11:58:48 · 158 阅读 · 0 评论 -
遨游 9.22模拟赛
题目大意:N个省M条路,然后每个省有一些城市,M条路连接着两座城市(保证是连通图),有什么省级优惠:连接一个省中的两个城市的路费得到xi%的优惠,连接两个省的路得到(xi% + xj%) / 2的优惠,还有什么国家级优惠,如果这个价格在L—R之间则免费,问L & R的大小解题思路:dfs + 二分嵌套二分出 L & R,判断条件是满足(价格>=L &&...原创 2018-09-23 15:04:28 · 151 阅读 · 0 评论