【题目描述】

国防部计划用无线网络连接若干个边防哨所。2种不同的通讯技术用来搭建无线网络;每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。

任意两个配备了一条卫星电话线路的哨所(两边都拥有卫星电话)均可以通话,无论他们相距多远。而只通过无线电收发器通话的哨所之间的距离不能超过D,这是受收发器的功率限制。收发器的功率越高,通话距离D会更远,但同时价格也会更贵。

收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。换句话说,每一对哨所之间的通话距离都是同一个D。

你的任务是确定收发器必须的最小通话距离D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。

【输入格式】 wireless.in

第1行:2个整数S(1<=S<=100)和P(S<P<=500),S表示可安装的卫星电话的哨所数,P表示边防哨所的数量。

接下里P行,每行描述一个哨所的平面坐标(x,y),以km为单位,整数,0<=x,y<=10000。

【输出格式】 wireless.out

第1行:1个实数D,表示无线电收发器的最小传输距离。精确到小数点后两位。

【样例输入】

2 4

0 100

0 300

0 600

150 750

【样例输出】

212.13

数据范围

对于20%的数据  P=2,S=1

对于另外20%的数据  P=4,S=2

对于100%的数据  1<=S<=100,S<P<=500

题意是有n个点在坐标系中,可以选m个点,把它们之间的距离全改成0,求所有点两两之间的距离的最大值

原来以为这是点和点之间的关系,最小生成树好像不太行。

但是数据太小,所以我用的二分+并查集

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
inline int read()
{  int x=0,f=1;char ch=getchar();  while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}  while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}  return x*f;
}
struct p{int x,y;
}point[1001];
struct edge{int x,y;double v;
}e[300000];
inline bool cmp(edge a,edge b)
{return a.v<b.v;}
inline double dist(p a,p b)
{int xx=abs(a.x-b.x),yy=abs(a.y-b.y);return sqrt(xx*xx+yy*yy);
}
int fa[1001];
inline int getfa(int x)
{if (fa[x]==x) return x;else return fa[x]=getfa(fa[x]);
}
int n,m,tot;
double ans;
inline bool jud(int x)
{int piece=m,s,t;for (int i=1;i<=m;i++) fa[i]=i;for (int i=1;i<=x;i++){s=getfa(e[i].x);t=getfa(e[i].y);if (s!=t){piece--;fa[s]=t;}}if (piece<=n) return 1;return 0;
}
int main()
{freopen("wireless.in","r",stdin);freopen("wireless.out","w",stdout);n=read();m=read();for(int i=1;i<=m;i++){point[i].x=read();point[i].y=read();for (int j=1;j<i;j++){e[++tot].x=i;e[tot].y=j;e[tot].v=dist(point[i],point[j]);}}sort(e+1,e+tot+1,cmp);int l=0,r=tot;while (l<=r){int mid=(l+r)>>1;if (jud(mid)){ans=e[mid].v;r=mid-1;}else{l=mid+1;}}printf("%.2lf",ans);
}

转载于:https://www.cnblogs.com/zhber/p/4036074.html

2014.7.7模拟赛【无线通讯网】相关推荐

  1. 2014.11.12模拟赛【最小公倍数】| vijos1047最小公倍数

    最小公倍数(lcm.c/.cpp/.pas) 题目描述 给定两个正整数,求他们的最小公倍数. 样例输入 28 12 样例输出 84 数据范围 对于40%数据:1<=a,b<=10^9 对于 ...

  2. 2014.9.13模拟赛【数位和乘积】

    数位和乘积(digit.cpp/c/pas) [题目描述] 一个数字的数位和乘积为其各位数字的乘积.求所有的N位数中有多少个数的数位和乘积恰好为K.请注意,这里的N位数是可以有前导零的.比如01,02 ...

  3. 2014.11.12模拟赛【美妙的数字】| vijos1904学姐的幸运数字

    美妙的数字(number.c/.cpp/.pas) 题目描述 黄巨大认为非负整数是美妙的,并且它的数值越小就越美妙.当然0是最美妙的啦. 现在他得到一串非负整数,对于每个数都可以选择先对它做二进制非运 ...

  4. 2014.8.15模拟赛【公主的朋友】

    题意是支持两种操作:区间染色:询问区间[l,r]之间有多少个颜色是x的. wulala的题解是这样写的 30分的话直接暴力, 60分对于每种宗教维护一颗线段树 100分的话分块就可以了,每次暴力处理起 ...

  5. 2014.8.15模拟赛【公主的工作】bzoj1046[HAOI2007]上升序列

    bzoj题目是这样的 Description 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,axm},满足(x1 < x2 < - < xm ...

  6. 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  7. 2021年 第12届 蓝桥杯 第3次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  8. 蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】

    蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载[2013年(第4届)~2021年(第12届)] 百度网盘-CSDN蓝桥杯资料(真题PDF+其它资料)   提取码:6666 2013年 ...

  9. 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

最新文章

  1. Scikit-Learn 机器学习笔记 -- 决策树
  2. 最简洁的y460显卡切换安装方式
  3. java字节码提取if语句_终于找到了!有了它你就可以读懂字节码了!
  4. 随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址
  5. 本地Vue前端请求本地Spring Boot跨域问题(CROS错误)
  6. MVC3教程之实体模型和EF CodeFirst
  7. Java 工具包收藏
  8. cubemx lan8720a ping不通_行刑的刀越用越钝,为啥刽子手却从不去磨?原因让外国人想不通!...
  9. 概率论——几何随机变量
  10. stony大学计算机科学找工作,福布斯排名:这些大学的STEM专业毕业生薪资最高!...
  11. C++:CMake常用变量【CMAKE_CXX_FLAGS、CMAKE_BUILD_TYPE、×_BINARY_DIR】
  12. 大一python基础编程试卷_Python编程基础练习题
  13. PCIe系列专题之一:PCIe技术概述
  14. 微信小程序输入联想、表格
  15. 今日头条搜索排名seo怎么做?今天头条网站优化规则揭秘!
  16. 解决MATLAB高版本启动较慢问题
  17. ML之PDP:基于titanic泰坦尼克是否获救二分类预测数据集利用PDP部分依赖图对RF随机森林实现模型可解释性案例
  18. 文件处理小程序(包含哈夫曼文件压缩-解压等 C语言)
  19. matlab的且数组专职,如何将excel中数据导入matlab并存入数组中/matlab导入数据并绘图...
  20. suse linux 桌面效果,suse linux enterprise 10.3 3d桌面特效

热门文章

  1. TurboMail邮件系统: IP进黑名单,仍可收发邮件
  2. 【iOS开发】更改App图标下方显示的名称
  3. java 串口 rxtx_【Java】基于RXTX的Java串口通信
  4. mysql order by 语句_Mysql优化order by语句的方法详解
  5. 关于MongoDB时区问题
  6. 为普通用户添加root权限
  7. Java 程序连接 Informix 数据库方法实例介绍
  8. MySQL Workbench 的安全设置
  9. 从 Azure 下载 Windows VHD
  10. 基于rhel7.2的mysql5.7.13安装与配置