在一張圖上有n個點,點與點之間的連線的花費都已經告訴你了,請你設計一下,如果解決這個「最小生成樹」的問題。
輸入首先輸入乙個數字n(0〈=n〈=100)
然後輸入乙個n*n的矩陣 其中第i行第j列的數字k表示從點i到點j需要的花費。
輸出乙個數字,最少需要多少花費才能使得整張圖任意兩點都直接或者間接連通(也就是最小生成樹的權)
sample input
50 41 67 34 0
41 0 69 24 78
67 69 0 58 62
34 24 58 0 64
0 78 62 64 002
0 11 0
sample output
1160
#include#includeusing namespace std;
#define max 101
struct tedge
;void vinit(int narr,int nn);
int ninput(tedge tarr,int nn);
void vsort(tedge tarr,int ne);
bool bcmp(const tedge &ta,const tedge &tb);
int nkruskal(tedge tarr,int narr,int nn);
void vout(int nout);
void vmerge(int narr,int na,int nb,int nn);
int main()
return 0;
}void vinit(int narr,int nn)
}int ninput(tedge tarr,int nn)
nedgecount++;
} return nret;
}void vout(int nout)
{ cout<
kruskal 最小生成樹
include include 產生隨機數組用 include 同上 include using namespace std 1 帶權邊的類myarc class myarc bool operator const myarc arc myarc myarc int beginvex,int end...
最小生成樹Kruskal
最小生成樹有兩個特點,乙個是保證了所有邊的和是最小值,另乙個是保證了所有邊中的最大值最小。struct edge bool friend operator edge a,edge b 構邊 vectoredge int id max int mini void initial void input ...
最小生成樹(kruskal)
kruskal演算法 1 記graph中有v個頂點,e個邊 2 新建圖graphnew,graphnew中擁有原圖中相同的e個頂點,但沒有邊 3 將原圖graph中所有e個邊按權值從小到大排序 4 迴圈 從權值最小的邊開始遍歷每條邊 直至圖graph中所有的節點都在同乙個連通分量中 if 這條邊連線...