hrbust 哈理工oj 网线【MST+Prim】
生活随笔
收集整理的這篇文章主要介紹了
hrbust 哈理工oj 网线【MST+Prim】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 網線 | ||||||
| ||||||
| Description | ||||||
| ? ?試設計一個網絡連接某個區域中的一些地點。給定這些地點所在的位置,網線的長度就是兩個地點的線段距離,假定,給定的網線可以直接或間接的連接該地區中的所有點,試為這個地區設計一個網絡系統,使得該地區所有地點都可以直接或間接的連接,并且使用網線長度最短。 | ||||||
| Input | ||||||
| 輸入一個數字n(n<1000),給出這n個點的位置(x,y),即坐標(0≤x<1000,0≤y<1000)。 | ||||||
| Output | ||||||
| 輸出網線的最短距離,保留小數點后四位。 | ||||||
| Sample Input | ||||||
| 1 1 1 2 0 0 1 1 3 0 0 0 1 1 1 | ||||||
| Sample Output | ||||||
| 0.0000 1.4142 2.0000 | ||||||
| Author | ||||||
| 彭文文@hrbust |
N的數據范圍比較大,克魯斯卡算法會超時,即使路徑壓縮了,即使使用快排了,還是會超時,所以被逼無奈,只能用prim來做。
在計算過程中呢,我們需要考慮一個精度問題,我們如果在入圖的時候就使用double或者float來寫的話,很容易產生精度差,當然就會有wa的可能。
所以我們在計算過程中,入圖的時候用int,只有在生成樹的過程中加上sqrt(map【i】【j】)就行了,這個時候我們避免了精度差問題,也省略了很多不必要的*1.0之類的步驟。
AC代碼:
總結
以上是生活随笔為你收集整理的hrbust 哈理工oj 网线【MST+Prim】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android基于蓝牙实验,基于Andr
- 下一篇: 数据库调优过程(五):物理分表,及写入方