最短路的那些有趣的模型(不定期更新)
除起点与终点外,必须在规定的点上走。
- 将floyd的最外层设为规定的点而不是所有点。
最短路必须经过一些点,多组询问。
- 先求出所有点到这些点的最短路(
反图dijkstra
或Floyd
),然后枚举min(dis[i][k] + dis[k][j])。
多源最短路。
- 将源全部扔进优先队列(dijkstra)/队列(spfa)。
最短路 + 决策(分层图最短路)
-
dis数组另开一维记录_做不做决策/做多少决策_,暴力转移。
-
或选用toposort + dp