LOJ10065 北极通讯站
Waterloo University 2002
北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,,y) 表示。为了加强联系,决定在村庄之间建立通讯网络。通讯工具可以是无线电收发机,也可以是卫星设备。所有的村庄都可以拥有一部无线电收发机, 且所有的无线电收发机型号相同。但卫星设备数量有限,只能给一部分村庄配备卫星设备。
不同型号的无线电收发机有一个不同的参数 d,两座村庄之间的距离如果不超过 d 就可以用该型号的无线电收发机直接通讯,d 值越大的型号价格越贵。拥有卫星设备的两座村庄无论相距多远都可以直接通讯。
现在有 k 台卫星设备,请你编一个程序,计算出应该如何分配这 k 台卫星设备,才能使所拥有的无线电收发机的 d 值最小,并保证每两座村庄之间都可以直接或间接地通讯。
例如,对于下面三座村庄:

其中 |AB|= 10, |BC|= 20, |AC|= 10\sqrt{5}≈22.36∣AB∣=10,∣BC∣=20,∣AC∣=105≈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;
第 2∼n+1 行,每行两个整数,第 i 行的xi,yi 表示第i 座村庄的坐标 (xi,yi)。
输出格式
一个实数,表示最小的 d 值,结果保留 2 位小数。
样例
样例输入
3 2
10 10
10 0
30 0
样例输出
10.00
数据范围与提示
对于全部数据,1≤n≤500,0≤x,y≤10^4,0≤k≤100。
_________________________________________________________________
最小生成树,由于可以用卫星联系就是不用形成树,只要去最小的边,形成n-m+1个联通分量就可以了。最后取的边的长度就是答案。
________________________________________________________________
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=505;
4 struct edge
5 {
6 int u,v;
7 double w;
8 }e[maxn*maxn];
9 int js,n,m,cnt;
10 int x[maxn],y[maxn];
11 void addage(int u,int v,double dis)
12 {
13 e[js].u=u;e[js].v=v;e[js++].w=dis;
14 }
15 double dis(int i,int j)
16 {
17 return sqrt((double)(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
18 }
19 bool mycmp(edge a,edge b)
20 {
21 return a.w<b.w;
22 }
23 int f[maxn];
24 int find(int x)
25 {
26 if(f[x]==x)return x;
27 return f[x]=find(f[x]);
28 }
29 int main()
30 {
31 scanf("%d%d",&n,&m);
32 for(int i=1;i<=n;++i)
33 {
34 scanf("%d%d",x+i,y+i);
35 for(int j=1;j<i;++j)
36 addage(i,j,dis(i,j));
37 }
38 sort(e,e+js,mycmp);
39 for(int i=1;i<=n;++i)f[i]=i;
40 for(int i=0;i<js;++i)
41 {
42 int a=find(e[i].u),b=find(e[i].v);
43 if(a!=b)
44 {
45 f[a]=b;
46 cnt++;
47 if(cnt==n-m)
48 {
49 printf("%.2lf",e[i].w);
50 break;
51 }
52 }
53 }
54 return 0;
55 }
LOJ10065 北极通讯站的更多相关文章
- LOJ#10065. 「一本通 3.1 例 2」北极通讯网络
题目链接:https://loj.ac/problem/10065 题目描述 原题来自:Waterloo University 2002 北极的某区域共有 nnn 座村庄,每座村庄的坐标用一对整数 ( ...
- iOS 根据经纬度计算与地理北极夹角
http://www.aiuxian.com/article/p-2767848.html #define toDeg(X) (X*180.0/M_PI) /** * @method 根据两点经纬度 ...
- LOJ P10065 北极通讯网络 题解
每日一题 day39 打卡 Analysis 1.当正向思考受阻时,逆向思维可能有奇效. 2.问题转化为:找到最小的d,使去掉所有权值>d的边之后,连通支的个数<k; 3.定理:如果去掉所 ...
- GitHub 将源代码保存在北极洞穴,至少使用 1000 年!
最近,GitHub分享了开放Arctic Code Vault的计划,该计划旨在存储和保存Flutter和TensorFlow等开源软件. 所有开放源代码项目的代码都将存储在胶片上,该胶片每帧包含88 ...
- [暑假集训Day1T2]北极通讯网络
这题主要考察对“卫星电话”的理解,k个卫星电话相当于可以让k个联通块保持联通,因此我们只需要让原图连成k个联通块,然后给每个联通块的任意一个节点发一部卫星电话即可.因此我们需要连n-k条边,特别地,当 ...
- Arctic Network(洛谷)--北极通讯网络(loj)
洛谷传送门 loj传送门 一道蛮基础的最小生成树的题 题意也没绕什么圈子 只是叙述的有点累赘而已(loj上是这样的 也就读入加建边需要稍稍稍多想一下下 对于我这么一个蒟蒻 这是一道很好的板子题 (洛谷 ...
- MyTerm入选北极代码库计划,喜获「Arctic Code Vault Contributor」勋章
- Atitit.uke 团队建设的组织与运营之道attilax总结
Atitit.uke 团队建设的组织与运营之道attilax总结 1. intro引言:2 2. aims组织成立宗旨2 1.1. Mission组织使命2 1.2. val核心价值观2 1.3. c ...
- Good Bye 2016
A - New Year and Hurry (water) #include <bits/stdc++.h> using namespace std; int main() { ]; ; ...
随机推荐
- sklearn中的SGDClassifier
常用于大规模稀疏机器学习问题上 1.优点: 高效 简单 2.可以选择损失函数 loss="hinge": (soft-margin)线性SVM. loss="modifi ...
- [leetcode]82. Remove Duplicates from Sorted List
第一题:遍历链表,遇到重复节点就连接到下一个. public ListNode deleteDuplicates(ListNode head) { if (head==null||head.next= ...
- 所有CSS字体属性
font(在一个声明中设置所有的字体属性) font-family(指定文本的字体系列) font-size(指定文本的字体大小) font-style(指定文本的字体样式) font-variant ...
- Light Probes
LightProbes (光照探针,光探测器?) 提供了一种方法用于捕获和使用 穿过场景中空白空间的 光(light)的信息. 和光照贴图相似(lightmaps),Light Probes也存储关于 ...
- 30天自制OS(linux环境)-day1
30天自制OS(linux环境)--第一天 我是在CentOS的环境上面实现的,使用ubuntu的环境也是类似的 第一步:因为要对二进制文件进行编辑,所以安装二进制编辑器hexedit(当然其他的也可 ...
- TurtleBot3使用课程-第二节a(北京智能佳)
目录 1.[第3类]LRF(LDS)传感器 2 1.1 传感器包安装 2 1.1.1 传感器端口访问设置 2 1.1.2 运行hlds_laser_publisher节点 2 1.1.3 在RViz中 ...
- [学习笔记]Golang--基础数据类型
1,不同类型的变量不能互相赋值或者操作,如var a int8 = 16var b int = 23c := a + b 会报错,且int虽然默认32位,但和int32是不同的类型 iota只在声明枚 ...
- Lesson_strange_words6
stylized 有艺术效果的 slide 幻灯片,滑动 template 模板,样板 grasp 掌握,领悟 factor 因素 twisted pair cable 双绞线 twisted 扭曲的 ...
- STP、PVST、MST协议
• STP:生成树协议 ○ 阻止环形链路的广播风暴 • PVST:VLAN生成树 ○ 是STP的进阶版不仅能阻止广播风暴,还可以做到基于VLAN进行流量均衡. ...
- 集成spring框架的web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" ...