[模拟赛] T1 无线通讯网
Description
国防部计划用无线网络连接若干个边防哨所。2种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话线路的哨所(两边都拥有卫星电话)均可以通话,无论 他们相距多远。而只通过无线电收发器通话的哨所之间的距离不能超过D,这是受收发器的功率限制。收发器的功率越高,通话距离D会更远,但同时价格也会更贵。 收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。换句话说,每一对哨所之间的通话距离都是同一个D。 你的任务是确定收发器必须的最小通话距离D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。
Input
第 1 行:2个整数 S(1<=S<=100)和 P(S<P<=500), S表示可安装的卫星电话的哨 所数,P表示边防哨所的数量。 接下里P行,每行描述一个哨所的平面坐标(x,y),以 km为单位,整数,0<=x,y<=10000。
Output
第1行:1个实数D,表示无线电收发器的最小传输距离。精确到小数点后两位。
Range
对于20%的数据 P=2,S=1 对于另外20%的数据 P=4,S=2 对于100%的数据 1<=S<=100,S<P<=500
Solution
我们可以把这道题抽象一下,能通过收发器连接的哨所看成一个联通块,而卫星电话就代表可以连接联通块的边。所以这题就变成了最小生成树问题,即通过连边构造出P-S个联通块即可。
Code
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<algorithm>
#define int long long
using namespace std;
int m,n,maxn,ans,cnt,sum;
];
struct Node{
int x,y,dis;
friend bool operator<(Node a,Node b){
return a.dis<b.dis;
}
}edge[];
struct Edge{
int x,y;
}node[];
int dist(int i,int j){
return (node[i].x-node[j].x)*(node[i].x-node[j].x)+(node[i].y-node[j].y)*(node[i].y-node[j].y);
}
int find(int x){
if(father[x]==x) return x;
father[x]=find(father[x]);
return father[x];
}
int read(int &x){
x=;char ch=getchar();
while(!isdigit(ch)) ch=getchar();
)+(x<<)+(ch^),ch=getchar();
}
signed main(){
/*freopen("wireless.in","r",stdin);
freopen("wireless.out","w",stdout);*/
read(m),read(n);
;i<=n;i++) read(node[i].x),read(node[i].y);
;i<=n;i++){
;j<=n;j++){
if(i==j) continue;
edge[++cnt].x=i,edge[cnt].y=j;
edge[cnt].dis=dist(i,j);
}
}
sort(edge+,edge++cnt);
;
;i<=n;i++) father[i]=i;
;i<=cnt;i++){
int r1=find(edge[i].x);
int r2=find(edge[i].y);
if(r1!=r2)
father[r1]=r2,k++;
if(k+m==n){
printf("%.2lf",sqrt((double)edge[i].dis));
fclose(stdin);fclose(stdout);
;
}
}
/*for(int i=sum;i;i--){
m-=2;
if(have[edge[used[i]].x]) m++;
if(have[edge[used[i]].y]) m++;
have[edge[used[i]].x]=have[edge[used[i]].y]=1;
if(m<0){
printf("%.2lf",sqrt((double)edge[used[i]].dis));
//fclose(stdin);fclose(stdout);
return 0;
}
}*/
}
[模拟赛] T1 无线通讯网的更多相关文章
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- 20180610模拟赛T1——脱离地牢
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...
- NOIP欢乐模拟赛 T1 解题报告
小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...
- [模拟赛] T1 高级打字机
Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小 ...
- 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...
- [NOIP2018校模拟赛]T1 阶乘
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...
- [NOIP2018校模拟赛]T1聚会 party
题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...
- 【2019.8.15 慈溪模拟赛 T1】插头(plugin)(二分+贪心)
二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能 ...
- 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)
打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...
随机推荐
- sqoop:mysql和Hbase/Hive/Hdfs之间相互导入数据
1.安装sqoop 请参考http://www.cnblogs.com/Richardzhu/p/3322635.html 增加了SQOOP_HOME相关环境变量:source ~/.bashrc ...
- Linux基础六
用户账号管理 基于账号身份对资源访问进行控制 账户类别:用户账号,组账号 识别方式:UID,GID 用户账号:超级用户root,系统用户,普通用户 组账号:用来区分权限,不用于登陆 基本组(私有组) ...
- ARM开发软件ADS教程
ARM开发软件ADS教程 ADS(ARM Developer Suite)是ARM公司推出ARM集成开发环境,操作简单方便,获得广大开发人员的青睐.下面使用ADS v1.2做一个实例教程,帮助大家学会 ...
- @restcontroller与@controller的区别
这段时间偷偷看了下spring boot.结果引用模板时没注意,把@restcontroller替换了@controlle,结果模板出不来.终究原因是spring的知识不到位. 下面说说这2的说明和区 ...
- 双硬盘RAID 0全攻略
. RAID53 RAID7即高效数据传送磁盘结构,是RAID3和带区结构的统一,因此它速度比较快,也有容错功能.但价格十分高,不易于实现. 为什么需要磁盘阵列 如何增加磁盘的存取(ac ...
- ubuntu14.04 64位 安装JDK1.7
ubuntu14.04 64位 安装JDK1.7 1 新建文件夹 youhaidong@youhaidong:~$ sudo mkdir /usr/lib/jvm 2 解压文件 youhaidong@ ...
- CentOS7安装dnf报错:No package dnf available
1.百度中提供的安装办法 yum install epel-release -y yum install dnf 2. No package dnf available解决办法 运行一下几个命令: w ...
- iOS 双击tabbar刷新页面
/*在继承UITabBarController控制器中*/ #pragma mark <UITabBarControllerDelegate> -(void)tabBarControlle ...
- (luogu P1594)护卫队[TPLY]
(luogu P1594) 护卫队 题目链接 https://www.luogu.org/problemnew/show/P1594 很好的一个模型 题目大意 有一个有序的车队,要求将其分成若干段,每 ...
- 【Luogu2759】奇怪的函数(数论)
[Luogu2759]奇怪的函数(数论) 题面 题目描述 使得 \(x^{x}\)达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 \(x^ ...