!A的感觉真是好,继续加油!View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<algorithm> 5 using namespace std; 6 #define M 16 7 const double eps=1e-8; 8 int map[M][M]; 9 const int inf = 1000000;10 bool flag[M];11 int D[M],nodes[M],w[M];12 int n,m,rest[M];13 Read More
posted @ 2011-11-05 22:10 Because Of You Views(375) Comments(0) Diggs(0) Edit
转载。。题目链接:http://poj.org/problem?id=2349这个问题是最小生成树的问题假设d已知,把所有铺设线路的村庄连接起来,构成一个图。需要卫星设备的台数就是图的连通支的个数。d越小,连通支就可能越多。那么,只需找到一个最小的d,使得连通支的个数小于等于卫星设备的数目。把整个问题看做一个完全图,村庄就是点,图上两点之间的边的权值,就是两个村庄的直线距离。只需在该图上求最小生成树,d的最小值即为第K长边!因为:最小生成树中的最长k-1条长边都去掉后,正好将原树分成了k个连通分支,在每个连通分支上摆一个卫星设备即可那么剩下的各村庄之间的连线,最长不用超过第k长边的长度。Vie Read More
posted @ 2011-11-05 18:05 Because Of You Views(310) Comments(0) Diggs(0) Edit