hdu 1875 暢通工程再續 kruskal

2021-05-27 02:32:48 字數 546 閱讀 4826

最小生成樹的一種求法,關鍵還是判斷兩個點是否在乙個回路上即並查集的運用……

#include #include#include#includeusing namespace std;

int num[210];

int pre[210];

double length;

struct edge

e[9999];

void makeset(int i)

int findset(int i)

void unionset(int x, int y, double w)

else

}bool cmp(const edge &m,const edge &n)}}

for(int i=0;i<=n;i++)

makeset(i);

sort(e,e+c,cmp);

length= 0;

for(int i=0;i0)

else

printf("oh!\n");

}}

hdu 1875 暢通工程再續

題目 又是最小生成樹。一開始錯了幾次。我以為是當兩段路大於1000或者小於10就會不符合要求。其實是讀錯題意了。當兩段路大於1000或者小於10。只應該把這段路變成死路。下面是ac include includeusing namespace std define n 9999999 int n d...

HDU 1875 暢通工程再續

題目大意 其實就是求最小生成樹 不過唯一坑的地方在於只要求實現任意2個小島之間有路通即可,至少2個島連通 如果2個島不通才輸出oh 解題思路 標準的最小生成樹的模板 限制條件2島距離在10 1000公尺之間 普利姆演算法 include include include include include...

hdu1875 暢通工程再續

題目鏈結 此題是求最小生成樹的變形,需要從點和座標中抽象出邊的資訊,再利用kruskal求得最小生成樹,不過要注意邊是否符合要求,不然無法使用。看最後能否構成最小生成樹 include include include includeusing namespace std struct edge bu...