多种最短路径或生成树问题小计

倖福魔咒の 提交于 2020-03-03 13:18:42

最短路径问题的变种真的是层出不穷,本羸弱已经写了不少了,先写一篇总结,之后慢慢加吧

生成树模板题

最短网络

多源点最短路径优化

在这里插入图片描述
一般我们使用Floyd算法计算所有点之间的最短路径,但是复杂度很高,在这道题这里显然是不行的。这时候需要一个小技巧:反向建图,将多个点到一个点的最短路径转化为单个点到多个点的最短路径。题解

行走次数有限的最短路径

在这里插入图片描述
与普通的最短路径问题不同,这类题的限制在于路径的数目不能超过某个值nn,而且本题还有另一个难点,如何决定在哪条路径上使用哪一个车票。这类题组合数非常之多,一般考虑将限制因素用整数表示为集合,
在这里插入图片描述题解

TSP问题

在这里插入图片描述
TSP问题与一般最短路径的问题在于经过每个顶点恰好一次,并且最终回到起点这个约束,对于这个问题,我们一般采用状态压缩DP的思想,将经过的点集化为集合,用dp[S][v]dp[S][v]表示经过了SS中的所有点,处于vv点时,访问剩余所有节点需要的总权重,然后记忆化搜索即可
在这里插入图片描述

无向图前k条不重叠最短路径

在这里插入图片描述
对于这种题,与一般最短路径不同的就是要求多条最短路径,一般的做法是使用最小费用流的模板来解决这种问题,每条边的长度为cic_i,最大流fi=1f_i=1,在图中求流量为kk的最小费用,即前kk条最短路径的总长度。题解最小费用流详解+模板

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!