圖論實驗A題_網絡
阿新 • • 發佈:2019-05-13
復雜度 數據 .net con ref mon -c get .cn
題面:A.網絡
思路:求MST(最小生成樹)+樹上倍增LCA(樹鏈剖分還不懂orz)
1. 最小生成樹的理論依據:無向連通圖中任意兩點間路徑最大權的最小值 = 該圖最小生成樹中這兩點唯一路徑中最大權
2. 求最小生成樹的方法:
- Kruskal算法(適用於稀疏圖)
然而事實是Kruskal還沒有自己實現過,把這三題AC掉再說
- Prim算法(適用於稠密圖)
本題是完全圖Kn,並且Prim算法O(n^2)的復雜度在本題中1<=n<=5000的數據規模裏是妥妥的不會TLE.(一般而言,n^2復雜度時,n<=10000較好)
參考鏈接:
Prim算法模板
Prim算法堆優化(簡要)
Prim算法優先隊列版本
3. 倍增(在線)LCA算法:求Least Common Ancestor
已知一棵樹(一般是已知n-1條邊及其頂點),每次給出一個詢問q,給出兩結點a,b之間的最近公共祖先
變式:求樹上兩結點a,b的距離;求兩結點a,b路徑最大/小權
參考鏈接:
LCA三種求解方法
基本樹上倍增LCA的寫法
洛谷1967題解:如何求結點a,b間最大/小權
已知兒子結點時,樹上倍增寫法
4. 補充:
最大值最小與最小值最大問題
圖論實驗A題_網絡