最小生成樹 prime演算法

2021-07-30 19:54:59 字數 1307 閱讀 6660

問題

c: 建立通訊

時間限制

: 1 sec  

記憶體限制

: 128 mb

提交: 

7  解決: 4

[提交][狀態

][討論版]

題目描述

據不完全統計,受**影響,四川大部分災區通訊陷入癱瘓,數千個基站因斷電、傳輸中斷等原因退出服務,目前總公司已緊急部署對受災地區進行通訊搶修。按照應急通訊保障預案,必須盡快、付出代價最小,效率更高來全力恢復通訊。

由於四川大部分災區都處於山區,有很多基站之間不能直接建立通訊。現已知建立各基站之間直接通訊的代價,問如何建立總代價最小的通訊網,使得任意兩個基站之間都能通訊?

輸入第1

行:n (n

為的個數)第

2~n+1

行:pi1 pi2 ……pin

(pij

為建立基站

i與基站

j直接通訊的代價

i, j=1 , 2, …., n )

輸出

t (建立通訊網的最小代價數)

【約束條件】(1

)10 ≤ n ≤1000(2

)-1 ≤ pij ≤ 1000 pij

為整數,若

pij = -1

,表示基站

i與基站

j不能直接通訊(3

)時間限制:

1000ms

樣例輸入5

0 160 30 20 -1

160 0 200 -1 -1

30 200 0 50 80

20 -1 50 0 70

-1 -1 80 70 0

樣例輸出

280

#include #include #include #define n 1001

#define inf 99999999

int e[n][n], book[n], dis[n];

int main()

for(i=1; i<=n; i++)

dis[i]=e[1][i];

book[1]=1;

count++;

while(counte[j][k])

dis[k]=e[j][k];

}}

printf("%d\n", sum);

} return 0;

}

最小生成樹 Prime演算法

對於乙個圖,它的所有生成樹中必有乙個 邊的權值最小 的生成樹,我們把它稱為最小生成樹。概念很抽象,換做實際問題 有十個城市,各個城市之間距離或遠或近。需要建設乙個道路網,把十個城市連線在一起,要求道路網的道路長度最小。各個城市的連線可以抽象為乙個圖,本質上即是求該圖的乙個最小生成樹。每乙個圖可能有多...

最小生成樹 prime演算法

生成樹頂點集合,初始只含起點 v0。visit i 1 i點已在生成樹中 lowcost i 生成樹中的點 到頂點 i 的最短距離。演算法過程 1.初始化生成樹,一開始只將起點 v0 加入到 樹中。2.初始化 lowcost 陣列,初值為 v0 到各頂點的距離,無邊則為 inf。重複以下步驟,直到所...

prime演算法 最小生成樹

若有差錯,望請指正!最小生成樹prime演算法,時間複雜度o v 2 時間複雜度只與頂點個數有關,與邊無關 gedge define max 1000 可以更大 void mintree prime graph g int min arc 從min weight中挑選出的最小的邊,即已計算的頂點群與...