题目描述

国防部(DND)希望通过无线网络连接几个北部前哨站。

在建立网络时将使用两种不同的通信技术:每个前哨站都有一个无线电收发器,一些前哨站还有一个通信卫星。

任意两个拥有通信卫星的前哨站不论它们的位置如何,都可以通过卫星进行通信。

而如果利用无线电进行通信,则需要两个前哨站的距离不能超过D方可进行通信。

而D的大小取决于收发器的功率,收发器的功率越大,D也就越大,但是需要的成本也就越高。

出于采购和维护的考虑,所有的前哨站都采用相同的收发器,也就是说所有前哨站的无线电通信距离D都是相同的。

你需要确定在保证任意两个前哨站之间都能进行通信(直接或间接)的情况下,D的最小值是多少。

输入格式

第一行包含整数N,表示共有N组测试数据。

每组数据的第一行包含两个整数S和P,其中S为卫星个数,P为前哨站个数。

接下来P行每行包含两个整数x和y,分别表示一个前哨站的横纵坐标。

输出格式

输出一个实数,表示D的最小值,结果保留两位小数。

样例

样例输入

1
2 4
0 100
0 300
0 600
150 750

样例输出

212.13

题解

比较版的题,先邻接矩阵预处理两点见距离,再用Kruskal算法跑最小生成树。因为卫星可以不考虑距离,所以答案为最小生成树第S+1长的边。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int M=1e6+5;
struct edge{int u,v;double w;
}G[M];
struct node{int x,y;
}a[M];
int n,fa[M],cnt,T,p;
double P

北极网络(Kruskal)相关推荐

  1. 软件交互性友好性_您应该知道的8个环境友好的开放软件项目

    软件交互性友好性 在过去的几年中,我一直在帮助绿色和平组织建立其第一个完全开源的软件项目Planet4.Planet4是一个全球参与平台,绿色和平组织的支持者和活动家可以在其中与组织互动和参与. 目标 ...

  2. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

  3. 最小生成树——北极通讯网络

    问题 B: 北极通讯网络 时间限制: 1 Sec  内存限制: 128 MB 提交: 17  解决: 7 [提交][状态][讨论版][命题人:add_xiezhenghao] 题目描述 北极的某区域共 ...

  4. 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

    对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

  5. AcWing 1145. 北极通讯网络 题解

    AcWing 1145. 北极通讯网络 北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,y) 表示. 为了加强联系,决定在村庄之间建立通讯网络,使每两座村庄之间都可以直接或间接通讯. 通 ...

  6. 北极通讯网络(最小生成树)

    北极通讯网络 题意 北极的某区域共有n座村庄,每座村庄的坐标用一对整数 (x,y)(x,y)(x,y) 表示.为了加强联系,决定在村庄之间建立通讯网络.通讯工具可以是无线电收发机,也可以是卫星设备.所 ...

  7. 【Kruskal】Agri-Net 最短网络

    LinkLinkLink luogu 1546 ssl 1682 ssl 1764(有一点点小区别) DescriptionDescriptionDescription 农民约翰被选为他们镇的镇长!他 ...

  8. 最小生成树(Kruskal算法+Prim算法)简单讲解+最小生成树例题 acm寒假集训日记22/1/8

    算法简讲部分: Kruskal算法: 基于贪心策略大致过程分为第三步:1. 我们先用结构体把每条边的端点和权值记录下来,然后对每条边按权值进行排序2. 因为 使图连通最少需要n-1 条边,所以我们依次 ...

  9. 【数据结构】最小生成树 Prim算法 Kruskal算法

    最小生成树应用场景: 假设以下场景,有一块木板,板上钉上一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样得情况,即用最少的细绳把所有的钉子连接起 ...

最新文章

  1. matlab 如何代码自已标注_MATLAB概述
  2. c实现面向对象编程(3)
  3. Lucene的评分(score)机制的简单解释
  4. animate.css(第三方动画使用方法)
  5. 常见的几种负载均衡算法
  6. h5列表 php,H5的标签使用详解
  7. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。...
  8. CALL TRANSACTION 和 SUBMIT 事务码之间的跳转
  9. 韵达混合云深度解析:Docker助力大规模云上调度实践
  10. MMIO与PIO区别
  11. oracle财务系统与erp,浅谈Oracle ERP财务系统在中煤建安集团的应用
  12. 8926音频录音流程
  13. linux 配置compoer
  14. 文件上传功能怎么测试
  15. 高级查询(mysql)
  16. .net rar zip压缩包解压
  17. 网络工程师眼中的自动化运维
  18. selenium找到页面元素click没反应
  19. 如何搭建Filecoin测试网挖矿节点 | 开发者专区系列01
  20. matlab错误使用 sum 数据类型无效。第一个参数必须为数值或逻辑值。解决方法

热门文章

  1. 解决华硕主板使用机箱前侧面板无声音问题
  2. 二维码营销必须注意的N个点,不看不知道!
  3. 为什么推荐新人做口子查?其和站点查渠道查有什么区别?
  4. python疑难杂症
  5. Hololens 开发笔记(2)——MRTK
  6. VR全景诚邀您走进2019中国北京世界园艺博览会(可在线体验)
  7. Android Api Demos登顶之路(十)Overscan
  8. java字符串不足长度自动补足
  9. 可调整界面输出的桌面万年历设计
  10. 密码学实验一、凯撒密码