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