最短路径问题的变种真的是层出不穷,本羸弱已经写了不少了,先写一篇总结,之后慢慢加吧
生成树模板题
多源点最短路径优化
一般我们使用Floyd算法计算所有点之间的最短路径,但是复杂度很高,在这道题这里显然是不行的。这时候需要一个小技巧:反向建图,将多个点到一个点的最短路径转化为单个点到多个点的最短路径。题解
行走次数有限的最短路径
与普通的最短路径问题不同,这类题的限制在于路径的数目不能超过某个值,而且本题还有另一个难点,如何决定在哪条路径上使用哪一个车票。这类题组合数非常之多,一般考虑将限制因素用整数表示为集合,题解
TSP问题
TSP问题与一般最短路径的问题在于经过每个顶点恰好一次,并且最终回到起点这个约束,对于这个问题,我们一般采用状态压缩DP的思想,将经过的点集化为集合,用表示经过了中的所有点,处于点时,访问剩余所有节点需要的总权重,然后记忆化搜索即可
无向图前k条不重叠最短路径
对于这种题,与一般最短路径不同的就是要求多条最短路径,一般的做法是使用最小费用流的模板来解决这种问题,每条边的长度为,最大流,在图中求流量为的最小费用,即前条最短路径的总长度。题解,最小费用流详解+模板
来源:CSDN
作者:csyifanZhang
链接:https://blog.csdn.net/csyifanZhang/article/details/104627388