
最短路径
Chester_King
虽千万人,吾往矣。
展开
-
【POJ】3259 Wormholes bellman-ford | SPFA
诶,真的是越活越回去了,现在打的程序还不如以前了,慢的爆炸……(先测的是bellman-ford,后测的是SPFA)题目大意:FJ想要进行时光旅行,现在有F个农场,对于每个农场,已知该农场有N片农田,M条小路,W个虫洞。其中小路是双向的,虫洞是单向的。对于每条小路,有S,E,T三个参数:S和E表示小咯两端农田的序号,通过这条小咯需要的T的时间。对于每个虫洞,同样有S,E,T三个参数:S原创 2017-02-18 14:01:14 · 427 阅读 · 0 评论 -
【BZOJ】1598 [Usaco2008 Mar]牛跑步 k短路(最短路径+A*)
题目传送门补一发k短路(虽然以前会的,但是现在好像都忘光了……在学习的过程中还是要多复习啊)。恩?这题不就是k短路的模板题吗?题意已经很明确了,就是让我们求前k短路的长度,若不存在则输出-1。然后就是喜闻乐见的套模板……然后就是打板子的时候了。不过OLE也是比较少见的,今天竟然被我弄出来了一个:已经找完k短路了,但是忘记退出a*函数了……打板子也不能放松啊,基础才是最重要的。(原创 2017-07-25 20:25:44 · 330 阅读 · 0 评论 -
【POJ】2449 Remmarguts' Date k短路(最短路径+A*)
题目传送门题目大意就是给出起点s,终点t和一个参数k,以及一张图,问s到t间的k短路。对于所有k短路问题,我们都可以用最短路+A*的方法来解决。首先,我们根据输入数据建两张图:一张是和输入数据边的方向相同的正图,另一张是和输入数据边的方向相反的反图。我们对反图以终点t为起点做一遍最短路(我用的是SPFA),可以得到所有点到终点t的最短距离。然后从起点s开始做一遍A*,第k次遍历原创 2017-04-15 21:40:25 · 507 阅读 · 0 评论 -
图论基础整理
写在最前面:这是一篇很水很水的水博客,如果不无聊的同学就不要点进来了哈。我只是想记录一下今天复习的基础。1.POJ1125、POJ3615这两题都是非常水的floyd。前一题是求图上一节点,使得它到所有点的最大距离最小。显然只要floyd求所有点之间的最短路,然后枚举所有节点作为答案是否成立即可。后一题是更水的多源最短路,初学floyd的同学都能轻松水过。2.HDU2544原创 2017-07-24 15:36:54 · 648 阅读 · 3 评论 -
【BZOJ】1003 [ZJOI2006]物流运输 最短路径+DP
题目传送门复习一下之前所学,回忆一下一年前还身为普及组的菜鸡,被省选题干趴下的故事。去他妈的张又又!这道题的解题思路是非常神奇的,需要一定的脑洞。定义g[i][j]表示从第i天到第j天都不换路线的最小代价,显然我们可以用最短路径算法处理出g数组。然后就是DP了。定义f[i]表示从第1天到第i天的最小代价,显然这可以用O(n^2)的DP来做,状态转移方程也非常好想,f[i]=min(f[原创 2017-07-03 08:49:38 · 397 阅读 · 0 评论 -
【洛谷】1821 [USACO07FEB]银牛派对Silver Cow Party 最短路径
题目传送门日常水一波,就是对正向图跑一遍SPFA,然后建一张反向图,也就是求其他所有的节点到源点的距离,然后再跑一遍SPFA。最后输出两次距离和的最大值就行了。附上AC代码:#include #include #include #include #define M 100010#define N 1010using namespace std;struct note原创 2017-05-15 19:31:14 · 399 阅读 · 0 评论 -
【BZOJ】1922 [Sdoi2010]大陆争霸 带限制最短路
题目传送门这题一开始还真的没有什么思路,虽然说题目意思是求最短路,但是那个结界真的讨厌啊……然后点开了hzwer学长的博客……好吧,我承认我看题解了……发现这题的正解是带限制的最短路。用d1数组记录到达当前节点需要的时间,d2数组记录拆掉这个节点的所有结界发生器需要的最短时间,因此到这个节点的最短时间就是min(d1,d2)。然后就是最短路径的模板了……附上AC代码:#in原创 2017-04-24 19:19:31 · 413 阅读 · 0 评论 -
【BZOJ】1179 [Apio2009]Atm 强连通分量+最短路
题目传送门这题的正解——强连通分量+最短路,还是需要一定的想象力的。首先,我们把所有能够互相到达的点(也就是强连通分量)进行缩点,缩完后的点的权值就是原先所有点的权值和。然后,我们对缩完点的图重新建图,和强连通分量相连的点就是和属于这个强连通分量的原先节点相连的点。最后,我们对新建的图做一遍最短路,然后每次读入一个节点,判断该节点所在的强连通分量到起点s的最短路是否大于当前的ans原创 2017-04-20 20:11:32 · 585 阅读 · 0 评论 -
【POJ】2135 Farm Tour 最小费用最大流
题目传送门这题用到了最小费用最大流,一条边的容量为1,代价为这条边的长度。建立超级源点通向节点1,容量为2,代价为0;节点n通向超级汇点,容量为2,代价为0。之后刷一遍最小费用最大流就行了。注意:这题里的边都是双向边,比方说从节点x到节点y和从节点y到节点x是不同的走法。附上AC代码:#include #include #include #include using原创 2017-04-16 20:57:18 · 589 阅读 · 0 评论 -
【洛谷】3381 【模板】最小费用最大流
题目传送门划水啊,就是最小费用最大流的模板,只是标记一下自己会了这种算法。正解就是SPFA+EK,在SPFA扩展的过程中加入EK的判断——这条边的流量是否还有剩余。然后在所有节点都扩展完毕后进行EK的流量修改,最后统计答案。附上AC代码:#include #include #include #include using namespace std;struct no原创 2017-04-16 18:31:10 · 488 阅读 · 0 评论 -
【BZOJ】3007 拯救小云公主 最短路径
题目传送门题目大意:给定一个矩形和矩形内一些点,求一条左上角到右下角的路径,使所有点和矩形边界到这条路径的最小距离最大。解法1:最小距离最大,想到二分,然后题目就转化成:矩形内有一些圆形障碍,问左上角是否能到达右下角。直接BFS判断即可。(话说这种图好像叫对偶图啊)解法2:考虑两点间距离,如果要通过这两点,最小距离肯定为(xi−xj)2+(yi−yj)2−−−−−−−−−−−−−−−−−√\sqrt原创 2017-12-17 13:20:11 · 383 阅读 · 0 评论