随笔分类 -  图论——最短路

摘要:Description 给定一张无向图,求两点之间次短路的长度 Solution 关于用A*算法求解k短路,在此不再赘述,相关内容请见这里。 这里主要讲述一个坑点,本题是无向图(与POJ2449不同),我们在A*扩展节点时需要标记该节点是否已经在当前这条路径上,否则,我们求出的次短路是不正确的,排除 阅读全文
posted @ 2019-07-17 10:11 AD_shl 阅读(253) 评论(0) 推荐(0)
摘要:最短路的扩展题。 在没堵车之前,他会按照这张图的最短路走,所以我们跑一下dijkstra求一遍不堵车情况下的最短路,同时记录最短路径上每一个点的前驱。 考虑堵车的情况,我们枚举每一条边作为堵车的边,并标记。再跑一边dijkstra求一遍除这条堵车边的最短路,更新答案。 我们枚举每一条边作为堵车的边, 阅读全文
posted @ 2019-06-24 16:51 AD_shl 阅读(189) 评论(0) 推荐(0)
摘要:这道题说每一步可以走2k个距离,那么这道题就直接和倍增建立了联系。 由于n的范围很小,我们可以用Floyd处理边的关系,定义vis[i][j][k]表示ij之间是否存在2k的路径,dis[i][j]表示ij之间的最短距离是多少。 我们可以先进行一次Floyd处理vis,枚举ij以及中间点k,若vis 阅读全文
posted @ 2019-05-03 14:36 AD_shl 阅读(124) 评论(0) 推荐(0)
摘要:这是一道非常不错的题目,融合了多种算法。 首先这是一道单源最短路问题,一个显然的做法就是直接用相关的算法解决,但是本题有负权边,所以我们不能用dijstra算法,只能用spfa,但是如果数据是精心设计,那么spfa算法很可能被卡死,所以简单的单源最短路算法无法直接通过本题。 仔细分析,这道题有一个特 阅读全文
posted @ 2019-04-26 20:12 AD_shl 阅读(481) 评论(0) 推荐(0)
摘要:有关于最短路的题目。 我们先将将读入的原图存储下来,在存储一张原图的反向图,之后再进行一些操作。 我们在原图上求出一个数组d,其中d[i]表示从起点到i经过的点权最小的值,同理,我们在反向图上求出一个数组f,表示从终点到i经过的点权最大的值,这样一来,答案便是max(f[i]-d[i]). 我们在原 阅读全文
posted @ 2019-04-26 15:26 AD_shl 阅读(155) 评论(0) 推荐(0)