AcWing 1145. 北极通讯网络

北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,y) 表示。

为了加强联系,决定在村庄之间建立通讯网络,使每两座村庄之间都可以直接或间接通讯。

通讯工具可以是无线电收发机,也可以是卫星设备。

无线电收发机有多种不同型号,不同型号的无线电收发机有一个不同的参数 d,两座村庄之间的距离如果不超过 d,就可以用该型号的无线电收发机直接通讯,d 值越大的型号价格越贵。现在要先选择某一种型号的无线电收发机,然后t统一给所有村庄配备,数量不限,但型号都是 相同的。

配备卫星设备的两座村庄无论相距多远都可以直接通讯,但卫星设备是 有限的,只能给一部分村庄配备。

现在有 k 台卫星设备,请你编一个程序,计算出应该如何分配这 k 台卫星设备,才能使所配备的无线电收发机的 d 值最小。

例如,对于下面三座村庄:

其中,|AB|=10,|BC|=20,|AC|=10√5≈22.36。

如果没有任何卫星设备或只有 1 台卫星设备 (k=0 或 k=1),则满足条件的最小的 d=20,因为 A 和 B,B 和 C 可以用无线电直接通讯;而 A 和 C 可以用 B 中转实现间接通讯 (即消息从 A 传到 B,再从 B 传到 C);

如果有 2 台卫星设备 (k=2),则可以把这两台设备分别分配给 B 和 C ,这样最小的 d 可取 10,因为 A 和 B 之间可以用无线电直接通讯;B 和 C 之间可以用卫星直接通讯;A 和 C 可以用 B 中转实现间接通讯。

如果有 3 台卫星设备,则 A,B,C 两两之间都可以直接用卫星通讯,最小的 d 可取 0。

输入格式
第一行为由空格隔开的两个整数 n,k;

接下来 n 行,每行两个整数,第 i 行的 xi,yi 表示第 i 座村庄的坐标 (xi,yi)。

输出格式
一个实数,表示最小的 d 值,结果保留 2 位小数。

数据范围
1≤n≤500,
0≤x,y≤104,
0≤k≤100
输入样例:
3 2
10 10
10 0
30 0
输出样例:
10.00

先跑一遍最小生成树,然后再删除前k大的边,再输出最大的那条边。

#include <bits/stdc++.h>using namespace std;
const int maxn=1e6;int n,k;
int x[maxn],y[maxn];
int fa[maxn];
struct node
{int u,v;double w;inline bool operator<(const node & x)const{return w<x.w;}
}e[maxn*2];void init()
{for(int i=0;i<=n;i++){fa[i]=i;}return ;
}
double jl(int a,int b)
{return sqrt((double)(x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b]));
}int find(int x)
{if(fa[x]!=x){fa[x]=find(fa[x]);}return fa[x];
}
int main()
{scanf("%d %d",&n,&k);for(int i=1;i<=n;i++){scanf("%d %d",&x[i],&y[i]);}int idx=1;    for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){e[idx].u=i;e[idx].v=j;e[idx++].w=jl(i,j);}}sort(e+1,e+idx+1);init();double res=0;int cnt=0;for(int i=1;i<=idx;i++){int a=e[i].u;int b=e[i].v;double c=e[i].w;if(find(a)!=find(b)){fa[find(a)]=find(b);res=c;cnt++;}if(cnt==n-k){break;}}printf("%.2lf\n",res);return 0;
}

AcWing 1145. 北极通讯网络 题解相关推荐

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

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

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

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

  3. 洛谷P1262 间谍网络题解

    洛谷P1262 间谍网络题解 题目大意 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果 A 间谍手中掌握着关于 B 间谍的犯罪证据,则称 A 可以揭发 B.有些间谍收受贿赂,只要 ...

  4. 利用libcurl库进行http通讯网络

    文章目录 一.了解libcurl 二.通过实例认识libcurl 三.总结 四.参考资料 本文章使用的是Ubuntu18.04来完成程序编译运行. 一.了解libcurl libcurl是什么 lib ...

  5. 当今[远程抄表](http://hkhuake.com.cn/)的所有无线通信模式---手机基站移动无线通讯网络

    当今远程抄表的所有无线通信模式-手机基站移动无线通讯网络 这里所说的远程抄表的所有无线通信模式主要是现如今的.大家知道 现在是个网络互联,大数据的时代.所以在此背景下的远程抄表技术也 进行了变革.所谓 ...

  6. 回顾:中网通讯网络公司CEO罗与曾作客新浪嘉宾聊天室

    转载链接:http://tech.sina.com.cn/it/w/2001-11-09/91253.shtml 回顾:中网通讯网络公司CEO罗与曾作客新浪嘉宾聊天室 大家好! 主持人 :各位网友,下 ...

  7. 基于SSH的通讯网络电子计费系统 毕业论文+任务书+开题报告+文献综述+外文翻译及原文+答辩PPT+代码清单+项目源码及数据库文件

    下载地址:https://download.csdn.net/download/junkyio321/40671271 项目介绍: 基于SSH的通讯网络电子计费系统 毕业论文+任务书+开题报告+文献综 ...

  8. 5G技术在实际应用面临哪些困难?能否满足应急指挥通讯网络要求?

    5G技术的发展将是中国走向现代化极其重要的一部分,并将提供史无前例的社会应用图景. 不过,5G的呼声虽然高,但实际应用还面临不少问题,比如: 一.通信基础设施建设:高昂的场地租金和资源使用费 相比4G ...

  9. GPRS 无线通讯网络介绍问答 40 题

    1.什么是 GPRS?  GPRS正式商用以来,使用的客户人数不断增多,但很多移动手机用户对这个以英文字母缩写命名的新业务还不了解,究竟什么是GPRS?GPRS能给用户带来什么呢? GPRS是通用分组 ...

最新文章

  1. DevOps 的发展史
  2. Python之Numpy数组拼接,组合,连接
  3. PostgreSQL数据库dblink和postgres_fdw扩展使用比较
  4. 首次发现!AI脑回路演化向人类更进一步,OpenAI最新研究引热议,有学者评价:太吓人了...
  5. [USACO11NOV]牛的障碍Cow Steeplechase(匈牙利算法)
  6. python计算运动会某个参赛选手的得分。数据保存在文件中_成绩计算电脑程序的使用说明...
  7. linux 内核重定位,Linux 内核学习笔记:预备知识之“目标文件”
  8. gulp与webpack的对比
  9. 摩托罗拉edge S30冠军版今日开售:价格最便宜12+512G手机
  10. 1600802047 android 第三次作业(音乐播放器)
  11. 相机姿态估计(三)--P3P
  12. 四年级下册英语计算机房和教师办公室的图片,人教版四年级英语下册Unit 1单元知识梳理卷...
  13. 软件项目管理 project 实验
  14. 几种常用的传感器(加速度传感器、重力传感器、方向传感器、陀螺仪)简介
  15. 打印一本400页的书多少钱?哪里打印书本比较便宜
  16. 工学硕士翻译计算机,赫瑞瓦特大学中英翻译与计算机辅助翻译工具理科硕士入学条件及实习就业...
  17. 关于LCD1602单独清除某一行的问题
  18. 第45期:动态规划-背包问题
  19. KONG管理界面KONGA安装使用
  20. “哥伦布”华为,与智能联接新大陆

热门文章

  1. 那些年,我们一起读过的《JAVA与模式》
  2. 2022-06-06 FUSE用户态文件系统
  3. kitti 数据集点云使用笔记
  4. 【flask】Blueprint蓝图
  5. invalidate()
  6. 数据监控预警系统,实现不同端信息推送
  7. Lumaqq移植到Android-登录篇
  8. games101 1-2
  9. 一个有潜在危险的要求。从客户端中检测到(ctl00$ $ $ contentplaceholder2submit1
  10. 计算机毕业设计django基于python学校在线打印系统