
最短路
文章平均质量分 59
Frozen_Guardian
已退役菜鸡Acmer
展开
-
最短路模板
迪杰斯特拉const int N=1e3+100;//顶点数 const int M=4e3+100;//边数 struct Edge{ int to,w,next;}edge[M];int head[N],d[N],cnt;//链式前向星 bool vis[N];void addedge(int u,int v,int w){ edge[cnt].to=v; edge[cnt].w=w; edge[cnt].next=head[u]; head[u]=cnt++.原创 2020-06-28 12:28:17 · 323 阅读 · 0 评论 -
洛谷 - P3403 跳楼机(同余最短路)
题目链接:点击查看题目大意:求 ax+by+cz=K,K∈[1,h]ax+by+cz=K,K\in [1,h]ax+by+cz=K,K∈[1,h] 有多少个 KKK 满足方程题目分析:设 d[i]d[i]d[i] 为固定 xxx 后能够到达 mod x=i\mod x=imodx=i 的最小楼层,也就是仅通过操作 2,32,32,3 所能到达的最小楼层,转移方程为 d[i+y]=d[i]+yd[i+y]=d[i]+yd[i+y]=d[i]+y 和 d[i+z]=d[i]+zd[i+z]=d[i]+zd原创 2021-07-21 09:00:42 · 279 阅读 · 0 评论 -
牛客 - Yuki with emofunc and playf(同余最短路)
题目链接:点击查看题目大意:初始时给出一个数字 y=1y=1y=1 和一个辅助数字 xxx,每回合可以执行两种操作中的一种:y=y∗10y=y*10y=y∗10y=y+x−1y=y+x-1y=y+x−1问将 yyy 变成 nnn 的倍数最少需要操作多少次题目分析:同余最短路,其实 bfsbfsbfs 也是可以做的,对于 [0,n−1][0,n-1][0,n−1] 的每个点分别对于两种操作建边:addedge(i,(i*10)%n,1) 和 addedge(i,(i+x-1)%n,1),然后从原创 2021-07-21 09:18:16 · 250 阅读 · 0 评论 -
CodeForces - 1486E Paired Payment(分层图最短路)
题目链接:点击查看题目大意:给出一个 nnn 个点 mmm 条边组成的带权无向图,规定每次只能走两条边,假设走的两条边为 a−>b−>ca->b->ca−>b−>c,那么花费的权值为 (wab+wbc)2(w_{ab}+w_{bc})^2(wab+wbc)2,问从点 111 到 nnn 个点的最短路分别是多少,如果不可达输出 −1-1−1题目分析:读题的时候注意到了 www 的上限只有 505050,本来以为只是限制答案不爆 intintint 的,结果说是用来建原创 2021-06-10 16:10:03 · 289 阅读 · 0 评论 -
CodeForces - 1484F Useful Edges(最短路)
题目链接:点击查看题目大意:给出由 nnn 个点构成的无向图,再给出 qqq 个三元对 (u,v,l)(u,v,l)(u,v,l),现在问有多少条边 (i,j)(i,j)(i,j) 可以和至少一个三元对匹配,可以匹配的条件是:从点 uuu 到点 vvv 且包含边 (i,j)(i,j)(i,j) 的最短路的长度需要小于等于 lll题目分析:题目本身不难,就是有点绕,先考虑一下暴力思路可以先 O(m)O(m)O(m) 去枚举每条边,然后再 O(q)O(q)O(q) 去枚举每个询问,设 di,jd_{i,原创 2021-05-25 20:45:52 · 181 阅读 · 0 评论 -
CodeForces - 1529F It‘s a bird! No, it‘s a plane! No, it‘s AaParsa!(最短路+思维建图)
题目链接:点击查看题目大意:给出 nnn 个点(从 000 开始编号)和 mmm 条边的有向带权图,不过 mmm 条边是动态的,经过 ttt 秒后,第 iii 条边就从 ai−>bi,cia_i->b_i,c_iai−>bi,ci 变成了 ai−>(bi+t)mod n,cia_i->(b_i+t)\mod{n},c_iai−>(bi+t)modn,ci,现在要求输出任意两点之间的最短路(最短路矩阵)注意:在达到某个点后可以选择停留任意时刻再继续赶路题原创 2021-05-25 18:59:09 · 306 阅读 · 0 评论 -
CodeForces - 787D - Legacy(线段树优化建图+最短路)
题目链接:点击查看题目大意:给出 nnn 个点和 mmm 条边,现在需要求从 ststst 开始到所有点的最短路是多少,mmm 条边的给出方式如下:1 u v w1 \ u \ v \ w1 u v w:点 uuu 向点 vvv 连一条权值为 www 的边2 u l r w2 \ u \ l \ r \ w2 u l r w:点 uuu 向点 i∈[l,r]i原创 2020-12-24 17:48:31 · 307 阅读 · 3 评论 -
CodeForces - 1076D Edge Deletion(最短路+贪心/最短路树+bfs)
题目链接:点击查看题目大意:给出一张 n 个点 m 条边的带权无向图,设 d[i]d[ i ]d[i] 为从点 1 到点 i 的最短路,现在要求保留最多 k 条边,使得新图中 d′[i]=d[i]d'[ i ] = d[ i ]d′[i]=d[i] 的点尽量多题目分析:仍然是两种思路,比较简单的一种思路就是先用迪杰斯特拉求出最短路树,此时树上有 n - 1 条边,每选择一条边,就会使得满足d′[i]=d[i]d'[ i ] = d[ i ]d′[i]=d[i]的点加一,所以直接在最短路树上 dfs 或原创 2020-12-19 15:41:44 · 263 阅读 · 1 评论 -
CodeForces - 1272E Nearest Opposite Parity(多源起点的最短路)
题目链接:点击查看题目大意:给出 n 个点,每个点都有一个权值 a[ i ],且每个点可以到达 ( i - a[ i ]) 和 ( i + a[ i ] ) 两个位置,花费为 1,问每个点到达与其本身奇偶不同的点的最小花费是多少题目分析:看到网上那么多假算法的题解真的人傻了,写了个 spfa 恩说是 bfs ,不过这题好像真的没法卡掉 spfa,但也不能指鹿为马吧因为每个偶数权值的点的终点是奇数权值,同理每个奇数权值的点的终点是偶数权值,如此一来可以反向建边,按照奇偶分别跑一次多源起点的最短路.原创 2020-12-15 12:55:21 · 252 阅读 · 0 评论 -
CodeForces - 1450E Capitalism(差分约束)
题目链接:点击查看题目大意:给出一张 n 个点 m 条边的无向图,每个点代表一个人,每个人都有一个权值 a[ i ],每条边代表朋友关系,规定如果两个朋友之间,权值较小的人会嫉妒权值较大的人。每个朋友关系之间都会产生一个嫉妒关系,更具体的来说,对于 ( u , v ) 来说,要么 a[ u ] = a[ v ] + 1,要么 a[ v ] = a[ u ] + 1,输入时已经确定了某些边的嫉妒关系,现在问如何构造,可以使得 max( a[ i ] ) - min( a[ i ] ) 最大题目分析:吐原创 2020-12-08 10:14:21 · 615 阅读 · 2 评论 -
CodeForces - 1196F K-th Path(最短路+思维)好题
题目链接:点击查看题目大意:给出一个 n 个点,m 条边的无向图,需要求出图中第 k 短的路径题目分析:k 是 400,本来以为是需要思考 k * n 或 k * m 的算法,搞了半天最后原来是 k^3 的算法。。首先考虑,先把图中前 k 小的边全部拿出来,比较显然的是,答案最坏也不可能超过第 k 小的这条边然后对于这 k 条边涉及到的 2 * k 个点单独拎出来跑弗洛伊德,然后将 k * ( k - 1 ) / 2 条路径的权值排个序求第 k 小就是答案了妙啊代码://#.原创 2020-12-02 22:02:25 · 390 阅读 · 6 评论 -
洛谷 - P2761 软件补丁问题(spfa+状压)
题目链接:点击查看题目大意:给出 n 个错误,再给出 m 个补丁,对于每个补丁而言,设 b1,b2,f1,f2 分别为四个集合:当且仅当 b1 所表示的错误全部存在且 b2 所表示的错误没有任何一个存在时才可以使用该补丁,使用该补丁会花费 t 的时间,使用该补丁后会:修复掉 f1 中的所有错误,重新制造出 f2 中的错误,问修复掉 n 个错误的最短时间题目分析:因为 n 只有 20,所以考虑状压,然后就是类似于 dp 一样的最短路转移了,一提到最短路转移到的 dp ,spfa 肯定是一个不错的选择原创 2020-10-16 21:30:17 · 249 阅读 · 0 评论 -
CodeForces - 1422D Returning Home(最短路+思维建图)
题目链接:点击查看题目大意:给出一个 n * n 的二维平面,现在要从点 ( sx , sy ) 到达点 ( fx , fy ),在平面上有 m 个传送门,共有两次操作:向上、下、左、右移动一个单位,花费为一个单位 可以瞬间移动到同行或同列的传送门,没有花费现在问从起点到终点最少需要多少时间题目分析:首先需要知道的是,起点和终点并不是传送门,所以最后的一步一定是要么从起点走到终点,要么是从传送门走到终点所以问题转换为了如何在传送门之间建图,不难发现如果 x 坐标相同或者 y 坐标相同的传原创 2020-10-06 20:09:49 · 470 阅读 · 0 评论 -
中石油训练赛 - Bouldering(最短路+剪枝)
题目大意:给出一个 n * m 的矩阵,矩阵中有些许数字,两个数字之间的距离如果小于 r 的话就是可达,到达一个数字后会消耗数字对应的体力值,问从最下面的数字到最上面的数字的最短路是多少,必须要保证体力值不能为负题目分析:很容易写出一个分层图最短路,严格来说就是个二维最短路,d[ x ][ s ] 代表从起点到达点 x 时,消耗了 s 点体力的最短路,不过会 TLE,考虑剪枝因为在这个题目中最短路的优先级最高,换句话说,在相同的一个点,肯定距离越近且体力消耗越少越好,如果当前 y 位置下,最短距..原创 2020-09-29 15:32:25 · 318 阅读 · 0 评论 -
ZOJ - 4122 Triangle City(最短路+欧拉通路+思维)
题目链接:点击查看题目大意:给出一张三角形的无向图,如下图所示求出从点 ( 1 , 1 ) 到点 ( n , n ) 找到一条最长路,且每条边至多遍历一次,输出最长路的权值以及路径题目分析:点 ( 1 ,1 ) 到点 ( n , n ) 的一条最长路,且每条边至多遍历一次,不难想到欧拉通路,但欧拉通路的定义是,只有起点和终点两个奇度点,其余的点都是偶度点才行,对于初始时给出的图,所有的点都是偶度点,所以考虑删边,在确保其余点度数奇偶性不变的前提下,如果想要通过删边将起点和终点变为奇度点,那.原创 2020-09-17 21:27:05 · 328 阅读 · 0 评论 -
HDU - 5521 Meeting(最短路+思维建边)
题目链接:点击查看题目大意:给出 n 个点,再给出 m 个集合,对于每个集合中的点来说,其两两都是相互可达的,且花费都相同,问有多少个点,到达点 1 和点 n 的距离相同且最小题目分析:因为每个集合都是一个完全图,所以直接建图是 n * n 级别的,肯定不可行,又因为我们在求出答案之前,显然是需要正向从点 1 跑一遍迪杰斯特拉,跑出点 1 到每个点的最短距离 d1[ i] ,然后再从点 n 跑出点 n 到每个点的最短距离 d[ i] ,剩下的扫一遍维护一下最小值就可以了那么当务之急是如何不建..原创 2020-09-15 23:37:36 · 247 阅读 · 0 评论 -
CodeForces - 1407E Egor in the Republic of Dagestan(最短路+dp)
题目链接:点击查看题目大意:给出 n 个点和 m 条边的有向图,每条边的长度为 1 ,有一个属性由 0 或 1 表示,现在需要给每个节点赋值,使得:如果点 u 的权值为 0 ,则 u 只能走 ( u , v ) 且这条边的属性为 0 的边 如果点 u 的权值为 1 ,则 u 只能走 ( u , v ) 且这条边的属性为 1 的边问如何赋值能让点 1 到点 n 的最短路最大,输出一种构造方案题目分析:首先设计 dp ,为了契合最短路的模板,在这个题目中我用 d 数组作为 dp 数组,d[ i原创 2020-09-09 17:23:21 · 368 阅读 · 0 评论 -
洛谷 - P4768 [NOI2018]归程(Kruskal重构树+树上倍增+最短路)
题目链接:点击查看题目大意:去原网址看吧题目分析:因为是在刷克鲁斯卡尔重构树的题目,所以稍微思考一下就能想出解法了,首先如果水位线固定了,剩下的边组成的最小生成树也是一定的,此时同一个连通块内的点对答案的贡献都是相同的,因为车子可以随便开,这样连通块的贡献,就是连通块内距离点 1 最近的点了这样如何找相应的连通块呢?可以对所有边降序排序,建立克鲁斯卡尔重构树,对于点 x 来说,找到权值大于水位线,且深度最小的祖先,这一步可以用树上倍增来完成,此时这个祖先的子树中的点两两都可以互相达到了,显然包括原创 2020-08-23 21:17:12 · 265 阅读 · 0 评论 -
HDU多校3 - 6797 Tokitsukaze and Rescue(dfs+最短路)
题目链接:点击查看题目大意:给出一张无向完全图,现在要求删除 k 条边,问删除后的最短路的最大值是多少,k 最大是 5题目分析:很玄学的一道题,数据范围非常小且时间给了 8 秒,比赛时我直接暴力贪心,每次 tarjan 直接找最短路的必经边然后删除,但过了样例却返回了 WA ,然后就自闭了,看了题解之后真的感觉非常奇妙读完题后就注意到题目中说了所有的边权均是随机数,题解说因为随机数的期望都是一样的,最短路求出后每次只有一条,且涉及到的边数非常少,其他的反例的几率非常非常小,这样可以对每一层进行爆原创 2020-07-29 01:16:13 · 437 阅读 · 0 评论 -
洛谷 - P4001 [ICPC-Beijing 2006]狼抓兔子(网格图最大流转换为对偶图最短路)
题目链接:点击查看题目大意:给出一张 n * m 的稠密图,求以点 ( 1 , 1 ) 为起点,点 ( n , m ) 为终点的最小割题目分析:n 和 m 都是 1e3 级别的,最多可能有 1e6 个点,3e6 条边,跑最大流显然是正确的,但是时间复杂度肯定是顶不住的,正确做法应该是将其转换为对偶图然后跑最短路,注意建边是无向边讲解博客:https://www.cnblogs.com/jinkun113/p/9495308.html我的建图方法是先将每个点预处理标号,下面图中红色是原来的点,原创 2020-07-17 00:52:51 · 464 阅读 · 0 评论 -
牛客多校2 - Interval(网格图最大流转换为对偶图最短路)
题目链接:点击查看题目大意:给出一个区间,初始时为 [ 1 , n ] ,每次操作可以将 [ l , r ] 变为下面的其中之一:[ l + 1 , r ] [ l , r - 1 ] [ l - 1 , r ] [ l , r + 1 ]现在给出 m 次限制,表示可以花费一定的代价,使得上述的前两种或者后两种变化无效,问是否可以通过一些限制,使得永远无法达到 l == r 的状态题目分析:设源点为点 ( 1 , n ) ,所有的 l == r 的点与汇点相连,不难看出,对于此图求最大流原创 2020-07-17 14:26:46 · 503 阅读 · 2 评论 -
HDU - 6582 Path(最短路+最大流)
题目链接:点击查看题目大意:给出一张 n 个点和 m 条边组成的有向图,现在问让最短路变长的最小花费是多少题目分析:增加最短路的最小花费,我们可以将最短路上的边单独拿出来,再求一下最小割就好了,用了封装后的算法看起来非常舒服,但时间复杂度有点高。。看别人都是100ms左右跑完,我的代码是950ms划过代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>.原创 2020-06-28 22:31:03 · 350 阅读 · 0 评论 -
牛客 - Firework(多源起点的最短路)
题目链接:点击查看题目大意:给出一棵无向树,再给出 m 个初始时点燃的结点,这些点燃的结点会向四周扩散,若结点 x 已经被点燃,但结点 y 未被点燃,如果点 x 和点 y 之间的边权为 w 的话,那么经过 2 * w 的时间点 y 也会被点燃,问 n 个点全部被点燃的时间是多少题目分析:多源起点的最短路问题,在处理完 d[ i ] 代表从任一起点到结点 i 的最短路径后,必定存在一条边 x -y ,满足 z 是边 x - y 上的一个点,燃烧的传递路径是:起点 1 -> x -> z .原创 2020-06-17 15:19:20 · 333 阅读 · 0 评论 -
CodeForces - 1343E Weights Distributing(最短路)
题目链接:点击查看题目大意:给出一个由 n 个点和 m 条边组成的无向无权图,再给出一个含有 m 个正整数的权值表记为数组 val ,现在需要从点 a 走到点 b 然后在走到点 c ,问如何分配 val 里的权值到图中的每条边上,可以使得最短路最小,输出这个最小值题目分析:因为是要求最短路,所以先用迪杰斯特拉处理出分别以点 a 、点 b 、点 c 为起点的最短路,记为 dis_a , di...原创 2020-04-22 16:38:18 · 294 阅读 · 2 评论 -
CodeForces - 1321D Navigation S.ystem(最短路+思维)
题目链接:点击查看题目大意:给出一个由 n 个点和 m 条边组成的有向图,现在有一个人,他有一条固定的路线,这个题目中有一个导航,当到达任意一个点时,导航都会给出一条通往终点的最短路,但是这个人固定的路线并不一定每次都是最短路,导航最初会给出一条最短路,如果这个人不按照最短路行走的话,那么导航需要“重构”最短路,题目问“重构”的最小次数和最大次数题目分析:其实读完题后,首先第一反应是先将所...原创 2020-03-02 18:41:00 · 496 阅读 · 0 评论 -
XJOJ - 路径数(最短路+最短路路径数量)
题目链接:点击查看题目大意:Euphemia到一个N*N的药草田里采药,她从左上角的格子田(第一行,第一列)出发,要到达右下角(第N行,第N列)的格子田,每次她可以走到与当前格子有边相邻的格子去,但她不会走已经走过的格子,而且出于对美的要求,她走过的路径是关于 左下-右上 对角线对称的。由于地势不同,在每个格子田采药都会有一个疲劳度Tij,Euphemia想知道:有多少条合法路径,可以使得她采...原创 2020-02-23 15:41:08 · 1677 阅读 · 0 评论 -
CodeForces - 1307D Cow and Fields(最短路+思维)
题目链接:点击查看题目大意:给出一个由 n 个点和 m 条边组成的无向图,其中有 k 个点被标记了,题目要求选出两个被标记的点,连接一条边,使得从点 1 到点 n 的最短路最大题目分析:读完题后,大部分同学应该都会在脑中浮现出一个 n * n 的做法吧,那就是先用bfs求出 dis[ i ][ 0 ] 和 dis[ i ][ 1 ] ,分别表示从点 1 到点 i 的距离和从点 n 到点 i...原创 2020-02-18 17:19:37 · 801 阅读 · 0 评论 -
牛客 - 导航系统(最小生成树+Floyd)
题目链接:点击查看题目大意:有 n 个城市由 n - 1 条边连接成一个连通块,给出一个 n * n 的距离矩阵,代表 n 个城市中每两个城市之间的最短路,问该矩阵是否合法,如果合法从小到大输出 n - 1 条边题目分析:比赛的时候没反应过来这个题的题意是想干什么,补题的时候发现原来就是一个最小生成树,因为 n 个点由n - 1 条边组成了联通块,很显然是一棵树,题目又说了需要显示城市之...原创 2020-02-16 04:19:57 · 463 阅读 · 0 评论 -
POJ - 1556 The Doors(线段相交+最短路)
题目链接:点击查看题目大意:给出一个房间,房间内有许多墙壁(最多18堵墙),现在要从(0,5)点到(10,5)点,问最短路程是多少题目分析:若要使路程最短,肯定要在两点之间前进,这样我们可以在建好墙后,根据线段相交问题渐变,判断两个点之间是否有线段挡着,如果没有挡着,直接建边,边权为两点的直线距离,如果被挡着了,也就是存在一条线段和当前线段规范相交,则说明两点无法直接到达,则边权置为无穷大...原创 2020-01-27 16:41:49 · 243 阅读 · 0 评论 -
2019ICPC(银川) - Delivery Route(强连通缩点+分块最短路)
题目链接:点击查看题目大意:给出n个点和m条边构成的图,每条边都有权值,其中m1条边是双向的,且权值非负,有m2条边是单向的,且权值可负,现在要求从给定起点st到其他每个点的最短路,若不存在路径则输出NO PATH题目分析:看似很简单的单源最短路的题目,因为存在了负边权导致无法直接用迪杰斯特拉解决,又因为这个题目的数据经过了特殊构造,所以SPFA也会超时,只能另想办法解决这个题目的特点...原创 2020-01-07 19:27:25 · 698 阅读 · 0 评论 -
洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)
题目链接:点击查看题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下:汽车只能沿着网格边行驶,装满油后可以行驶K条边,出发时已经装满油 汽车经过一条网格边时,若x或y减小,需要花费B元,其余情况没有花费 汽车在行驶过程中遇到油库则必须强制加满油,并花费A元 在需要时可以在网格点增设临时油库,并支付花费C元(不...原创 2019-12-20 13:52:52 · 755 阅读 · 3 评论 -
POJ - 1201 Intervals(差分约束+最短路)
题目链接:点击查看题目大意:给定n个闭区间[ai,bi]和n个整数ci,你需要构造一个整数集合Z,使得Z中满足所有的ai<=x<=bi的整数不少于ci个,求出这样的整数集合Z最少包含多少个数题目分析:因为这个题目的数最多只有5e4个,我们可以设一个函数S[k],表示0~k中最少选出多少个整数才能满足题意,则我们可以写出约束方程:S[bi]-S[ai-1]>=ci,满足...原创 2019-12-10 15:13:14 · 309 阅读 · 0 评论 -
HDU - 5889 Barricade(最短路+最小割-最大流)
题目链接:点击查看题目大意:给出一张无向图,每条边的长度为1,第i条边建立障碍的花费为wi,题目要求在保证从1到n号点的所有的最短路径上,都有障碍的情况下的最小费用题目分析:要求最短路上的最小割,直接套两个模板就好了,先用spfa或迪杰斯特拉从起点跑一遍,再从终点跑一遍,然后枚举每一条边判断是否位于最短路上,若位于最短路上重新建图,建好图后直接跑最大流就是答案了很简单的模板题,但却卡了...原创 2019-12-09 02:16:17 · 236 阅读 · 0 评论 -
POJ - 3613 Cow Relays(Floyd思想+矩阵快速幂+动态规划)
题目链接:点击查看题目大意:给定一张由T(T<=100)条边构成的无向图,点的编号为1~1000,之间的整数,求从起点S到终点E恰好经过N(N<=1e6)条边(可重复经过)的最短路题目分析:虽然点的编号在1e3以内,却只有100条边,我们可以离散化,这样最多只需要一个200*200的邻接矩阵就可以维护了,离散化后我们考虑maze储存了邻接矩阵,则dp[i][j]=min(maz...原创 2019-12-06 11:16:16 · 352 阅读 · 0 评论 -
POJ - 1734 Sightseeing trip(最小环+输出路径)
题目链接:点击查看题目大意:给定一张无向图,求图中至少一个包含三个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。在本题中,你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。若无解,输出“No solution.”。图的节点数不超过100题目分析: 最小环的模板题,因为floyd实质上是阶段性dp,所以我们可以在每个阶段都判断一次,具体的判断方法...原创 2019-12-06 01:00:49 · 357 阅读 · 0 评论 -
POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)
题目链接:点击查看题目大意:给出N个点以及M个比较关系,问在第几个数字可以确定出唯一的序列,或者判断出矛盾的序列,或者最后也无法确定出一个唯一的序列题目分析:关于这个题目可以直接分类讨论,可以直接用拓扑排序判环,判断是否有唯一确定的顺序,这里我用floyd写了一下,可以直接传递闭包,然后根据题目的条件来判断是否有唯一答案,在确定了唯一答案之后就可以跑一边拓扑序输出答案了有个小坑需要注意...原创 2019-12-05 23:34:09 · 305 阅读 · 1 评论 -
洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)
题目链接:点击查看题目大意:给出一张图,每条边都有权值,现在要求从点st到达点ed,沿途中可以让k条边的边权免费,现在求最短路题目分析:分层图经典模板问题,直接套板子就行了,最后记得对于数组d的每一项中找出最小值作为答案代码:#include<iostream>#include<cstdlib>#include<string>#inclu...原创 2019-12-05 13:06:59 · 236 阅读 · 0 评论 -
POJ - 3662 Telephone Lines(分层图最短路)
题目链接:点击查看题目大意:在郊区有N座通信基站,P条双向电缆,第i条电缆连接基站Ai和Bi。特别的,1号基站是通信公司的总站,N号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第i条电缆需要花费Li电话公司正在举行优惠活动,农场主可以指定一条从1号基站到N号基站的路径,并指定路径上不超过K条电缆,由电话公司免费提供升级服务,农场主只需要支付在该路径上剩余的电缆中,升级价...原创 2019-12-05 12:32:35 · 553 阅读 · 0 评论 -
POJ - 2112 Optimal Milking(二分+二分图最大匹配-多重匹配(修改匈牙利实现)+Floyd求最短路)
题目链接:点击查看题目大意:给出n个牛奶机器,再给出m只奶牛,每个机器只能让最多k只牛一起挤奶,现在问如何分配奶牛,能让最远的那只奶牛到达机器的距离最小题目分析:很综合的一道题目了,不算很难,但比较难想,首先看到求最大值的最小值或者求最小值的最大值的这种问题,第一反应肯定是二分了,我们可以二分答案,也就是最远距离,不过在check之前,我们先要对给出的邻接矩阵跑一遍floyd,以保证两点之...原创 2019-11-18 02:40:46 · 246 阅读 · 0 评论 -
PAT (Advanced Level) 1003 Emergency(最短路+动态规划)
题目链接:点击查看题目大意:给出一个无向图,再给出起点和终点,要求消防队员从起点出发,尽可能快的赶往终点,每个点都有一个权值w,代表该点有多少个人口,问消防队员在尽可能快的赶到终点的前提下,一共有多少条路径可以选择,并且沿路最多能招募多少人口题目分析:说白了就是一道裸的迪杰斯特拉,然后用动态规划维护有多少条最短路,以及单条最短路上的最大点权之和,不过我不会。。动态规划真的是愁人,看了网上的...原创 2019-10-29 10:40:27 · 295 阅读 · 0 评论