hdu 1875暢通工程再續(最小生成樹)

2021-05-24 07:53:12 字數 561 閱讀 3703

思路簡單,最小生成樹,用prim或者kruskal都可以實現,我就用的是kruskal。

但杯具的是開始一直理解錯誤,wa的慘不忍睹,所以儘管題很水,我也發篇文,希望可以給後來人有點幫助

題目中的這句話很重要:

「決定在符合條件的小島間建上橋,所謂符合條件,就是2個小島之間的距離不能小於10公尺,也不能大於1000公尺」,

所以他給的點不一定都符合條件,在連線點時,光考慮path權值在10~1000之間的就可以了,如果path權值全部都不在10~1000直接那就

輸出"oh!",否則輸出最小花費。

我開始理解成,所有點都要求連通,如果例項給的點之間的權值存在超出10~1000範圍的就輸出"oh!",就一直悲催的wa

給一組例項:

input:

0 025 12

89 89

62 13

11 24

22 39

100 101

25 44

150 151

200 186

output:

35112.7

下面是**,並查集思想

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