求某一源點到其餘各頂點的最短路徑。
迪傑斯特拉
1.沒有路徑
2.只有一條路徑, 則該路徑即爲最短路徑
3.存在多條路徑, 則其中必存在一條最短路徑
思路:每次確定一條最短路徑。而且每一次是在原來確定的最短路上進行訪問。
時間複雜度
Flyod
求任意一對頂點的最短路徑。
這種算法的時間複雜度顯然是
Floyd算法運用得就是DP的思想。在i -> j路徑中不斷更新最優解。有路且小就往裏加, 沒路的就忽視。
Floyd適合求點到點的最短路
1.沒有路徑
2.只有一條路徑, 則該路徑即爲最短路徑
3.存在多條路徑, 則其中必存在一條最短路徑
思路:每次確定一條最短路徑。而且每一次是在原來確定的最短路上進行訪問。
時間複雜度O(n2)
求任意一對頂點的最短路徑。
這種算法的時間複雜度顯然是O(n3)
Floyd算法運用得就是DP的思想。在i -> j路徑中不斷更新最優解。有路且小就往裏加, 沒路的就忽視。
Floyd適合求點到點的最短路
最近遇到了三道數形結合的題目,不同的動機都直接指向了凸包(凸殼),利用凸殼上斜率(極角)的單調性進行二分。 1 .一個在傻X那裏淘到的一道數據結構題,from spoj:
bzoj2395 以前聽基哥講的時候就沒怎麼懂,以爲好難寫好難寫 // 其實不難寫,只是有點難調。 利用數形結合的思想,每棵生成樹在座標系上對應的是點(sigma(a),si