最小生成樹prim

2022-08-23 04:36:11 字數 1367 閱讀 4464

編寫乙個程式,計算給定加權圖g=(v,e)的最小生成樹的各邊權值之和。

輸入:

第一行輸入g的定點數n。接下來n行輸入表示g的n*n的鄰接矩陣a。a的元素aij代表頂點i到頂點j的邊的權值。

另外,便不存在時記為-1.

輸出:

輸出g的最小生成樹的各邊權值總和,佔1行。

限制:

1<=n<=100     0<=aij<=200 (aij!=-1時)    aij=aji   g為連通圖。

輸入示例:

5

-1    2     3     1    -1

2    -1    -1     4    -1

3    -1    -1      1     1

1      4    1     -1     3

-1    -1    1     3    -1

輸出示例:

5

**:

#includeusing

namespace

std;

const

int maxn=100

;const

int inf=(1

<<21

);int n,m[maxn][maxn];//

鄰接矩陣,記錄u到v的邊的權值

intprim()

d[0]=0

;

while(1

)

}if(u==-1

)

break

; color[u]=2

;

for(int v=0;v)}}

}int sum=0

;

for(int i=0;i)

return

sum;

}int

main()

}cout

return0;

}

今天也是元氣滿滿的一天!  good luck  !

最小生成樹 Prim

include stdio.h include stdlib.h include io.h include math.h include time.h define ok 1 define error 0 define true 1 define false 0 define maxedge 20 ...

最小生成樹 prim

演算法模型 由任意乙個頂點開始 將此頂點存入s集,剩餘頂點存入t集合 每次遍歷頂點,取一條能夠連線s與t最短邊e,直到所有頂點全部加入s include include define inf 1 30 int n,m,vis 110 low 110 int map 110 110 int init ...

最小生成樹 PRIM

這個是有關普利姆的演算法,從乙個點出發,找出與這個點相連的所有點的對應的權值最小的那個,然後再把這個點從集合中劃掉。模板如下 include include define inf 0xfffff define max 2005 using namespace std int map max max ...