HDU 1875 暢通工程再續

2022-06-20 22:24:19 字數 1079 閱讀 2280

題意:相信大家都聽說乙個「百島湖」的地方吧,百島湖的居民生活在不同的小島中,當他們想去其他的小島時都要通過劃小船來實現。現在**決定大力發展百島湖,發展首先要解決的問題當然是交通問題,**決定實現百島湖的全暢通!經過考察小組rprush對百島湖的情況充分了解後,決定在符合條件的小島間建上橋,所謂符合條件,就是2個小島之間的距離不能小於10公尺,也不能大於1000公尺。當然,為了節省資金,只要求實現任意2個小島之間有路通即可。其中橋的**為 100元/公尺。

思路:又是暢通工程的題目,用來熟悉最小生成樹的不錯題目。

1 #include2 #include3 #include

4 #include5 #include6 #include7

using

namespace

std;89

intn, cnt;

10double

ans;

11int x[105], y[105

];12

intnum;

1314

struct

node

15edge[105*105

];20

21int p[105

];22

23double cacl(int x1, int y1, int x2, int

y2)24

2728

int find(int

x)29

3233

bool

cmp(node a, node b)

3437

38void

kruskal()

3952}53

}5455int

main()

5680

}81 sort(edge, edge +cnt, cmp);

82 ans = 0;83

kruskal();

84if (num == n - 1) printf("

%.1f\n

", ans);

85else printf("

oh!\n");

86}87 }

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