hdu 1863 暢通工程

2021-09-26 09:45:48 字數 776 閱讀 5798

傳送門

給定n個村子,和m個可能要修的道路,現在要求連線這n個村子的最小成本,如果

無法構成一顆最小生成樹,則輸出?

這題典型的最小生成樹模板題,krusal演算法和prim演算法都可以達到要求

並且這題的資料量不大,並且是完全圖,利用鄰接矩陣做就好

#include

const

int maxn =

1e2+2;

const

int inf =

1<<30;

int g[maxn]

[maxn]

;int n;

int dist[maxn]

;//利用prime演算法儲存剩餘點到最小生成樹的最小距離

int visit[maxn]

;//記錄點是否加入最小生成樹點集之中。

void

init()

intprime()

int ans =0;

for(

int i=

1;i<=n;

++i)

return ans;

}int

main()

int ans =

prime()

;if(ans==-1

)printf

("?\n");

else

printf

("%d\n"

,ans);}

}

HDU 1863 暢通工程

include include include using namespace std const int maxn 5000 5 int n,m,ans,cnt bool flag struct streat edge maxn int root 105 int find int x void k...

hdu1863 暢通工程

題目鏈結 本題和還是暢通工程思路非常類似。區別在於後者給的圖的邊數為n n 1 2,是乙個無向完全圖,一定能找到乙個最小生成樹。而前者給的邊數不定,所以不一定能生成乙個最小生成樹,需要判斷。所用知識點 kruskal演算法 最小生成樹 並查集 如下 include include includeus...

HDU1863 暢通工程

省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 經過調查評估,得到的統計表中列出了有可能建設公路的若干條道路的成本。現請你編寫程式,計算出全省暢通需要的最低成本。input測試輸入包含若干測試用例。每個測試用例的第1行給出評估的道路...