随笔分类 - 图论——最短路
摘要:题意:n种钱,m种汇率转换,若ab汇率p,手续费q,则b=(a-q)*p,你有第s种钱v数量,问你能不能通过转化让你的s种钱变多? 思路:因为过程中可能有负权值,用spfa。求是否有正权回路,dis[s]是否增加。把dis初始化为0,然后转化,如果能增大就更新。每次都判断一下dis[s]。 参考:最
阅读全文
摘要:题意:给你所有道路的载重,找出从1走到n的所有路径中载重最大的,即路径最小值的最大值。 思路:和之前的POJ3268很像。我们用Dijkstra,在每次查找时,我们把最大的先拿出来,因为最大的不影响最小值,然后我们更新的时候,如果当前承重比我们新开辟的路的承重的能力差,那就替换成新的。 注意题目所给
阅读全文
摘要:题意:有n个地点,有m条路,问从所有点走到指定点x再走回去的最短路中的最长路径 思路:用Floyd超时的,这里用的Dijkstra。 Dijkstra感觉和Prim和Kruskal的思路很像啊。我们把所有点分为两个集合:S(和源点在同一集合),T(其余点),用dis数组表示每个点到S的最短距离,vi
阅读全文
摘要:题意:想给你公青蛙位置,再给你母青蛙位置,然后给你剩余位置,问你怎么走,公青蛙全力跳的的最远距离最小。 思路:这里不是求最短路径,而是要你找一条路,青蛙走这条路时,对他跳远要求最低。这个思想还是挺好迁移的,原来我们用mp[i][j]表示i到j最短路径,那么我们现在用它表示i到j最大步伐,然后每次比较
阅读全文
摘要:思路:Floyd模板题,注意一下Floyd核心的三个循环,顺序不要变,我们不能把k放在最内层。因为Floyd是通过不断遍历查找是否有更小的两个路径拼起来能比当前小,如果k在最内层,那么我们就会提前算好ij的最小路径,但是此时还有很多其他路径没有合并,无法保证这是最小的。 Floyd可以用来做多源最短
阅读全文

浙公网安备 33010602011771号