1. 程式人生 > >圖論實驗A題_網絡

圖論實驗A題_網絡

復雜度 數據 .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題_網絡