最短路弗洛伊德(Floyd)算法加保存路径
生活随笔
收集整理的這篇文章主要介紹了
最短路弗洛伊德(Floyd)算法加保存路径
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
弗洛伊德算法大致有點像dp的推導
dp[i][j] = min(dp[i][k] + dp[k][j], dp[i][j]),
其中 i 是起始點,j 是終止點。k是它們經過的中途點。
通過這個公式不斷地更新dp[i][j],得到最短路徑長。
我們先定義兩個矩陣,minpath[i][j],表示的是從 i 到 j 當前得到的最短路,
road[i][j] = k.表示的是從 i 到 j 點要經過的點是 k 然后不斷更新road[k][j],
直到k == j。
這個可以適用與有向圖和無向圖,就看你minpath[i][j] 怎么初始化了,
最后運行情況,加上了路徑的輸出。
說明一下我上面的代碼并不是這道題目的正解,就算上面的代碼除去我的路徑輸出也是錯的,
題目的n到了1e4,而這種方法最多就是處理一兩百的數據,
這里就是為了方便舉個例子。
總結
以上是生活随笔為你收集整理的最短路弗洛伊德(Floyd)算法加保存路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 短梗五加的功效与作用、禁忌和食用方法
- 下一篇: 羊骨汤的功效与作用、禁忌和食用方法