還是暢通工程(最小生成樹模板題)

2021-08-01 22:04:36 字數 654 閱讀 4456

思路:按村莊間的距離從小到大排序,選擇構成最小生成樹

1.prim演算法

本題的資料村莊(即頂點的個數)不是很大,故可直接遍歷,若資料很大時,就需要用堆來維護每個頂點的當前最短距離

265 ms

1608 kb

#include#includeusing namespace std;

#define inf 1e9

const int maxn=105;

int mincost[maxn],cost[maxn][maxn];

bool used[maxn];

int n,t; ///t為頂點個數,n為邊的個數

struct cz

} s[5005];

int prim()

mincost[1]=0;

int ans=0;

while(true)

} s[5005];

int find(int x)

return ans;

}bool same(int x,int y)

void unite(int x,int y)

int main()

}printf("%d\n",ans);

}return 0;

還是暢通工程 最小生成樹

題目描述 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。輸入 測試輸入包含若干測試用例。每個測試用例的第1行給出村...

A 還是暢通工程(最小生成樹)

點選開啟鏈結 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。input測試輸入包含若干測試用例。每個測試用例的第1...

還是暢通工程 最小生成樹 Prim演算法

includeusing namespace std 測試輸入包含若干測試用例。每個測試用例的第1行給出村莊數目n 100 隨後的n n 1 2行對應村莊間的距離,每行給出一對正整數,分別是兩個村莊的編號,以及此兩村莊間的距離。為簡單起見,村莊從1到n編號。當n為0時,輸入結束,該用例不被處理。in...