佈線問題(普利姆演算法)

2021-08-26 17:20:18 字數 669 閱讀 9246

普里姆(prim)演算法

1.基本思想:設g=(v, e)是具有n個頂點的連通網,t=(u, te)是g的最小生成樹, t的初始狀態為u=(u0∈v),te={},重複執行下述操作:在所有u∈u,v∈v-u的邊中找一條代價最小的邊(u, v)併入集合te,同時v併入u,直至u=v。即:

(1)從連通網路 g = 中的某一頂點 u0 出發,選擇與它關聯的具有最小權值的邊(u0, v),將其頂點加入到生成樹的頂點集合u中。

(2)以後每一步從乙個頂點在u中,而另乙個頂點不在u中的各條邊中選擇權值最小的邊(u, v),把它的頂點加入到集合u中。如此繼續下去,直到網路中的所有頂點都加入到生成樹頂點集合u中為止。

示例:昨晚上學長講了最小生成樹中的普利姆演算法,不過沒有將**實現,今天糾結了一天,嘿嘿,終於搞明白了一點,這個題是乙個赤裸裸的最小生成樹問題,也許會有很多錯誤,希望有人能幫我找出.

題目:佈線問題

ac**

#include#includeint m[502][502],flag[502]; int prim(int n) //用普利姆演算法找最小生成樹函式 for(j=2;j<=n;j++) } i=temp; sum+=min; } return sum; } int main() for(p=1;p<=k;p++) printf("%d\n",prim(k)+min); } return 0; }

NYOJ 38 佈線問題(普利姆)

佈線問題 時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 南陽理工學院要進行用電線路改造,現在校長要求設計師設計出一種佈線方式,該佈線方式需要滿足以下條件 1 把所有的樓都供上電。2 所用電線花費最少 輸入 第一行是乙個整數n表示有n組測試資料。n 5 每組測試資料的第一行是...

普利姆演算法

演算法思想 可取圖中任意乙個頂點v作為生成樹的根,之後若要往生成樹上新增頂點w,則在頂點v和w之間必定存在一條邊。並且該邊的權值在所有連通頂點v和w之間的邊中取值最小。一般情況下,假設n個頂點分成兩個集合 u 包含已落在生成樹上的結點 和v u 尚未落在生成樹上的頂點 則在所有連通u中頂點和v u中...

普利姆演算法

普利姆 prim 這個演算法有什麼用?在實際中這個演算法經常用到電子板的電路連線中,因為可以使用到最少的連線將所有的電子連線起來,又打個比方在鋪設電線將所有使用者連線起來可以使用最少的電線連線起來 知道了這個作用之後你是不是比較感興趣呢?首先看 prim演算法生成最小生成樹 void minispa...