东莞网站推广方式,长春百度推广电话,淘宝店铺怎么推广和引流,西安百度推广代运营1 /*2 The first line of each test case contains 1 S 100, the number of satellite channels!3 注意#xff1a;S表示一共有多少个卫星#xff0c;那么就是有 最多有S-1个通道#xff01; 然后将最小生成树中的后边的 S-1通道去掉就行了#xff01; 4… 1 /*2 The first line of each test case contains 1 S 100, the number of satellite channels!3 注意S表示一共有多少个卫星那么就是有 最多有S-1个通道 然后将最小生成树中的后边的 S-1通道去掉就行了 4 思路最小生成树中的第 k 个最小边 5 */6 //克鲁斯克尔算法.....7 #includeiostream8 #includecstdio9 #includecstring
10 #includealgorithm
11 #includecmath
12 using namespace std;
13
14 double x[800], y[800];
15
16 struct node{
17 int u, v;
18 double d;
19 };
20
21 bool cmp(node a, node b){
22 return a.d b.d;
23 }
24
25 int f[505];
26
27 node nd[150000];
28 double ret[505];
29
30 int getFather(int x){
31 return xf[x] ? x : f[x]getFather(f[x]);
32 }
33
34 bool Union(int a, int b){
35 int fagetFather(a), fbgetFather(b);
36 if(fa!fb){
37 f[fa]fb;
38 return true;
39 }
40 return false;
41 }
42
43 int main(){
44 int n, m;
45 int t;
46 scanf(%d, t);
47 while(t--){
48 scanf(%d%d, m, n);
49 for(int i1; in; i){
50 scanf(%lf%lf, x[i], y[i]);
51 f[i]i;
52 }
53 int cnt0;
54 for(int i1; in; i)
55 for(int ji1; jn; j){
56 nd[cnt].ui;
57 nd[cnt].vj;
58 nd[cnt].dsqrt( (x[i]-x[j])*(x[i]-x[j]) (y[i]-y[j])*(y[i]-y[j]));
59 }
60 sort(nd, ndcnt, cmp);
61 int cc0;
62 for(int i0; icnt; i)
63 if(Union(nd[i].u, nd[i].v))
64 ret[cc]nd[i].d;
65 for(int i0; icc; i)
66 coutret[i]fdsfendl;
67 printf(%.2lf\n, ret[n-m-1]);
68 }
69 return 0;
70 } 1 //prim算法.......2 #includeiostream3 #includecstdio4 #includecstring5 #includealgorithm6 #includecmath7 using namespace std;8 const double INF 0x3f3f3f3f*1.0;9 double x[800], y[800];
10
11 int n, m;
12 double map[505][505];
13 int vis[505];
14
15 double ret[505];
16
17 void prim(){
18 memset(vis, 0, sizeof(vis));
19 vis[1]1;
20 for(int i2; in; i)
21 ret[i]INF;
22 int root1, p;
23 for(int i1; in; i){
24 double minLenINF;
25 for(int j2; jn; j){
26 if(!vis[j] ret[j]map[root][j])
27 ret[j]map[root][j];
28 if(!vis[j] minLenret[j]){
29 minLenret[j];
30 pj;
31 }
32 }
33 rootp;
34 vis[root]1;
35 }
36 }
37
38 int main(){
39
40 int t;
41 scanf(%d, t);
42 while(t--){
43 scanf(%d%d, m, n);
44 for(int i1; in; i)
45 scanf(%lf%lf, x[i], y[i]);
46 for(int i1; in; i)
47 for(int ji1; jn; j)
48 map[i][j]map[j][i]sqrt( (x[i]-x[j])*(x[i]-x[j]) (y[i]-y[j])*(y[i]-y[j]));
49
50 prim();
51 sort(ret, retn1);
52
53 printf(%.2lf\n, ret[n-m1]);
54 }
55 return 0;
56 } 本文转自 小眼儿 博客园博客原文链接http://www.cnblogs.com/hujunzheng/p/3899428.html如需转载请自行联系原作者