0阶段-第一日集训-最短路

当齿轮开始转动————

第一日,主要内容为最短路相关算法:

从上至下依次对应算法为:
1、SPFA求最长路及判正环
2、分段弗洛伊德
3、思维(乘法转加法)+朴素迪杰斯特拉
4、暴力+朴素迪杰斯特拉
5、朴素迪杰斯特拉的最短路计数(SPFA也行)
6、BFS+堆优化迪杰斯特拉
7、BFS

收获:

1、求连乘的最大值,可以考虑把乘法取对数转换为加法,如:
ln(a1a2a3an)=lna1+lna2+lna3+…lnan。
虽然数值发生变化,但是不会失去原来地相对大小(lnx是单调递增的)。在取最值上不失为一种很好用的技巧。可以适应加法相关的维护技巧,比如前缀和,线
段树等等。
2、dfs SPFA判断负环/正环
3、floyd中在插入第k个点后,dp[i][j]表示允许经过前k个点的i到j最短距离,同时,对于从(1,1)开始的大小k*k的矩阵,此时在这个矩阵中最短路已求出。
4、在边权大小一致时,可以朴素地bfs
5、在稠密图更适合用朴素地迪杰斯特拉,比起堆优化的。

posted @ 2021-07-01 00:17  七铭的魔法师  阅读(33)  评论(0编辑  收藏  举报