最小生成樹專題

2022-08-02 10:54:12 字數 1770 閱讀 6891

一 prim演算法

/*

poj1258

有n個農場,已知這n個農場都互相相通,有一定的距離,現在每個農場需要裝光纖,

問怎麼安裝光纖能將所有農場都連通起來,並且要使光纖距離最小,輸出安裝光纖的總距離

資料:(幾個點,矩陣表示各點中間的距離)

40 4 9 21

4 0 8 17

9 8 0 16

21 17 16 0

*/#include

#include

#define maxint 0x3f3f3f3f

#define n 110//

建立map二維陣列儲存圖表,low陣列記錄每2個點間最小權值,visited陣列標記某點是否已訪問

intmap[n][n],low[n],visited[n];

intn;

intprim()

//最小權值累加

result+=min;//

標記該點

visited[pos]=1;//

更新權值

二 kruskal演算法

#include #include 

using

namespace

std;

const

int node_num = 102

;int

father[node_num];

intn, ne;

struct

edge

;edge e[node_num*node_num];

bool cmp(const edge& a, const edge&b)

void

make_set()

int find_set(int

i)

return

father[i];

}bool union_set(int a, int b) //

a --> b

else

}int

kruskal()}}

return

mst_edge;

}int

main()}}

printf(

"%d\n

", kruskal());

}return0;

}

poj 1258

kruskal演算法**

最小生成樹專題

首先來回顧一下最小生成樹的概念 在一給定的無向圖 g v,e 中,u,v 代表連線頂點 u 與頂點 v 的邊 即 而 w u,v 代表此邊 的權重,若存在 t 為 e 的子集 即 且為無迴圈圖,使得 的 w t 最小,則此 t 為 g 的最小生成樹。最小生成樹其實是最小權重生成樹的簡稱。簡單地說,就...

專題 最小生成樹 一

這個專題我們討論的問題是在無向圖中尋找一棵最小生成樹 minimum spanning tree 這個問題對於有向圖的討論也是有意義的,只不過演算法更加複雜,這裡我們將只討論無向圖。最小生成樹存在當且僅當圖是連通的。此處我們不對概念做過多的介紹,直接介紹兩種主要的演算法 1.kruskal演算法 2...

專題六 最小生成樹 Kuangbin

kuangbin專題 poj1251 jungle roads 最小生成樹 poj1278 networking 最小生成樹 poj2031 building a space station 最小生成樹 poj2421 constructing roads 最小生成樹 zoj1586 qs netw...