相信大家都聽說乙個「百島湖」的地方吧,百島湖的居民生活在不同的小島中,當他們想去其他的小島時都要通過劃小船來實現。現在**決定大力發展百島湖,發展首先要解決的問題當然是交通問題,**決定實現百島湖的全暢通!經過考察小組rprush對百島湖的情況充分了解後,決定在符合條件的小島間建上橋,所謂符合條件,就是2個小島之間的距離不能小於10公尺,也不能大於1000公尺。當然,為了節省資金,只要求實現任意2個小島之間有路通即可。其中橋的**為 100元/公尺。
210 10
20 20
31 1
2 21000 1000oh!
1.將座標化成一張圖。
2.判斷能否連通
3.prim演算法的模板
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7static
const
double inf=(1
<<21);8
9struct
cityc[105
];12
13int
t,n,flag;
14int vis[105],p[105
];15
double map[105][105],d[105
];16
17double
get(int x1,int y1,int x2,int
y2)22
23void
make_map()
24
33else map[i][j]=len;
34if(t==n) flag=1;35
}36}37
}3839void
prim()
40 53}54
if(u==-1) break
;55 vis[u]=1;56
for(int v=1;v<=n;v++)62}
63} 64}
65}66int
main()
67 80 printf("
%.1lf\n
",ans*100
);81
} 82}83
return0;
84 }
暢通工程再續
這個題太有意思了!沒想到最小生成樹的題還能這麼搞 竟然乙個是託 最後又到最小生成樹的經典做法上了 第一次沒對 我又仔細看了看題 原來這個也是最小權重啊 我一開始根本沒考慮最小的問題 只是把不在一塊的島 連了起來 後來又改了幾次 樣例都對 我覺得也沒啥毛病 但 啊 就是不對 後來我又從csdn上搜了 ...
1875 暢通工程再續
零基礎學演算法135 include using namespace std include const double inf 0x3f3f3f3f 1.0 struct node double d 105 105 int c 島嶼個數 void prim int count 1 for int i...
hdu 1875 暢通工程再續
題目 又是最小生成樹。一開始錯了幾次。我以為是當兩段路大於1000或者小於10就會不符合要求。其實是讀錯題意了。當兩段路大於1000或者小於10。只應該把這段路變成死路。下面是ac include includeusing namespace std define n 9999999 int n d...