hdu 1875 暢通工程再續(並查集)

2021-06-17 20:11:43 字數 622 閱讀 8056

又是一道暢通工程的題!

這題比上一題又麻煩一點,貌似這幾題都是乙個型別的,只是乙個比乙個麻煩一點點!

這題做法是將所有的可能的邊都列出來,再用sort函式進行排序,從小到大依次判斷,若這兩個點在同一陣營則過掉,若不在同一陣營,加上距離,規劃到同一陣營!

最後判斷所有點是否在同一陣營即可!

蠢方法!路過的大神莫怪!!!

#include"algorithm"

#include

using namespace std;

int pre[200];

struct node

a[200];

struct xx

aa[100010];

int cmp(xx a,xx b)

int main()

}sort(aa,aa+m,cmp);

ans=0;

for(i=0;i

}flag=0;

for(i=0;i

ans=ans*100;

if(flag==1)

printf("%.1f\n",ans);

else

printf("oh!\n");

}return 0;

}

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...