题目链接:http://poj.org/problem?id=2349

思路:由于有S个专门的通道,我们可以先求一次最小生成树,然后对于最小生成树上的边从大到小排序,前S-1条边用S-1个卫星通道连接,那么第S大条边就是我们要找的最小的D了。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define MAXN 555
#define inf 1LL<<60 struct Node{
int x,y;
}node[MAXN];
double map[MAXN][MAXN];
double lowcost[MAXN];
double dist[MAXN];
bool mark[MAXN];
int n,m; double Cal(int i,int j)
{
double d1=1.0*(node[i].x-node[j].x)*(node[i].x-node[j].x);
double d2=1.0*(node[i].y-node[j].y)*(node[i].y-node[j].y);
return sqrt(d1+d2);
} int cmp(const double &p,const double &q)
{
return p>q;
} double Prim(int u0)
{
int cnt=;
memset(mark,false,sizeof(mark));
for(int i=;i<=m;i++){
lowcost[i]=map[u0][i];
}
lowcost[u0]=;
mark[u0]=true;
for(int i=;i<m;i++){
double MIN=inf;
int v=u0;
for(int j=;j<=m;j++){
if(!mark[j]&&lowcost[j]<MIN){
MIN=lowcost[j],v=j;
}
}
if(MIN==inf)break;
mark[v]=true;
dist[cnt++]=lowcost[v];
for(int k=;k<=m;k++){
if(!mark[k]&&map[v][k]<lowcost[k]){
lowcost[k]=map[v][k];
}
}
}
sort(dist,dist+cnt,cmp);
//for(int i=0;i<cnt;i++)printf("%.2lf\n",dist[i]);
return dist[n-];
} int main()
{
int _case,a,b;
scanf("%d",&_case);
while(_case--){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
for(int j=;j<=m;j++)
map[i][j]=map[j][i]=(i==j?:inf);
for(int i=;i<=m;i++){
scanf("%d%d",&node[i].x,&node[i].y);
for(int j=;j<i;j++){
map[i][j]=map[j][i]=Cal(i,j);
}
}
printf("%.2lf\n",Prim());
}
return ;
}

poj 2349(最小生成树应用)的更多相关文章

  1. Arctic Network POJ 2349 (最小生成树思想)

    Description The Department of National Defence (DND) wishes to connect several northern outposts by ...

  2. POJ 2349 Arctic Network (最小生成树)

    Arctic Network Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  3. Poj(2349),最小生成树的变形

    题目链接:http://poj.org/problem?id=2349 Arctic Network Time Limit: 2000MS   Memory Limit: 65536K Total S ...

  4. POJ 2349 Arctic Network(最小生成树+求第k大边)

    题目链接:http://poj.org/problem?id=2349 题目大意:有n个前哨,和s个卫星通讯装置,任何两个装了卫星通讯装置的前哨都可以通过卫星进行通信,而不管他们的位置. 否则,只有两 ...

  5. poj 2349 Arctic Network(最小生成树的第k大边证明)

    题目链接: http://poj.org/problem?id=2349 题目大意: 有n个警戒部队,现在要把这n个警戒部队编入一个通信网络, 有两种方式链接警戒部队:1,用卫星信道可以链接无穷远的部 ...

  6. POJ 2349 Arctic Network(最小生成树中第s大的边)

    题目链接:http://poj.org/problem?id=2349 Description The Department of National Defence (DND) wishes to c ...

  7. (最小生成树) Arctic Network -- POJ --2349

    链接: http://poj.org/problem?id=2349 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1371 ...

  8. POJ 2349 Arctic Network(最小生成树,第k大边权,基础)

    题目 /*********题意解说——来自discuss——by sixshine**************/ 有卫星电台的城市之间可以任意联络.没有卫星电台的城市只能和距离小于等于D的城市联络.题 ...

  9. POJ 2349 Arctic Network (最小生成树)

    Arctic Network 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/F Description The Departme ...

随机推荐

  1. 微软开放技术(中国)携 CKAN 和 OData 技术引入基于 Azure 的开放数据平台

    今天,微软开放技术(中国)通过微软公有云Azure引入一个全新的开放数据平台,该平台基于开源数据门户解决方案 CKAN,以及由微软开放技术(中国)特别针对中国市场优化的ODATA插件来增强其国际化和本 ...

  2. maven学习手记 - 2

    学习目标 maven 的插件和目标: maven 的生命周期和阶段.   前言 在手记1中看到执行 mvn clean package 时,maven 自动执行了compile 和 test 操作. ...

  3. SQL Server 2008 没有可用于 charge_sys_Log.LDF 的编辑器

    因为上网问题重新装了系统.今天在整 SQL Server  的时候出现了这样一个问题. 因为之前装 SQL Server  的时候没有遇到过这种情况,感觉很新奇.所以详细的记录一下,希望对别人能有一定 ...

  4. 微软职位内部推荐-Sr SDE

    微软近期Open的职位: MSN reaches nearly half a billion people across the globe where we are the #1 portal in ...

  5. 手机开发Android模拟器genymotion

    手机开发的时候总会碰到一个问题,eclipse插件自带的android模拟器太慢了. 根据网络上有人推荐使用genymotion模拟器.   主要的操作步骤如下: 1.在genymotion网站注册账 ...

  6. shell编程之重定向

    标准输入,输出和错误---------------------------------文件文件                描述符---------------------------------输 ...

  7. hdu 3487 Play with Chain

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3487 YaoYao is fond of playing his chains. He has a c ...

  8. 【BZOJ】【1061】【NOI2008】志愿者招募

    网络流/费用流 OrzOrzOrz,这题太神了不会捉. 题解:https://www.byvoid.com/blog/noi-2008-employee/ 这道题正确的解法是构造网络,求网络最小费用最 ...

  9. matrix_world_final_2011

    C  http://acm.hust.edu.cn/vjudge/contest/view.action?cid=98613#problem/C 题意:输入16进制的n*m矩阵,其在二进制表示下有6种 ...

  10. GS玩家登录

    玩家上线 这个过程看了很多很多次了,这里在看下 客户端打开,服务器收到libevent事件,然后new Channel这个过程都付给他各种指针,然后放到channel容器中 .客户端发送c2s_log ...