这题主要考察对“卫星电话”的理解,k个卫星电话相当于可以让k个联通块保持联通,因此我们只需要让原图连成k个联通块,然后给每个联通块的任意一个节点发一部卫星电话即可。因此我们需要连n-k条边,特别地,当k=0时只需要连n-1条边

一定要好好读题!!!题目要求求边权的最大值,毒瘤样例求最大值,最小值,边权和,直接输出均可拿到17分,建议同学们自己出样例,防止被毒瘤样例搞废!!!

附赠SZM考场检查的样例:

4 2

0 100

0 300

0 600

150 750

输出:212.13

参考代码如下:

 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define N 1000001
using namespace std;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-;ch=getchar();}
return x*f;
}
int n,k,sum,parent[N];
double x[N],y[N];
double weight;
struct node
{
int u,v;
double w;
}f[];
bool cmp(node a,node b)
{
return a.w<b.w;
}
int find(int x)
{
if(parent[x]==x)return x;
return parent[x]=find(parent[x]);
}
void Union(int u,int v)
{
int U=find(u),V=find(v);
if(U==V)return;
parent[U]=V;
}
int main()
{
cin>>n>>k;
for(int i=;i<=n;i++)parent[i]=i;
for(int i=;i<=n;i++)
{
cin>>x[i]>>y[i];
//x[i]=read();y[i]=read();
}
for(int i=;i<=n;i++)
{
for(int j=;j<i;j++)
{
f[++sum].u=i;f[sum].v=j;f[sum].w=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
}
sort(f+,f++sum,cmp);
int num=;
for(int i=;i<=sum;i++)
{
int u=f[i].u,v=f[i].v; if(find(u)!=find(v))
{
Union(u,v);
weight=max(weight,f[i].w);
num++;
}
if(num==n-k)break;
}
printf("%.2lf",weight);
return ;
}

[暑假集训Day1T2]北极通讯网络的更多相关文章

  1. LOJ#10065. 「一本通 3.1 例 2」北极通讯网络

    题目链接:https://loj.ac/problem/10065 题目描述 原题来自:Waterloo University 2002 北极的某区域共有 nnn 座村庄,每座村庄的坐标用一对整数 ( ...

  2. LOJ P10065 北极通讯网络 题解

    每日一题 day39 打卡 Analysis 1.当正向思考受阻时,逆向思维可能有奇效. 2.问题转化为:找到最小的d,使去掉所有权值>d的边之后,连通支的个数<k; 3.定理:如果去掉所 ...

  3. Arctic Network(洛谷)--北极通讯网络(loj)

    洛谷传送门 loj传送门 一道蛮基础的最小生成树的题 题意也没绕什么圈子 只是叙述的有点累赘而已(loj上是这样的 也就读入加建边需要稍稍稍多想一下下 对于我这么一个蒟蒻 这是一道很好的板子题 (洛谷 ...

  4. 2015UESTC 暑假集训总结

    day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...

  5. C/C++ 用libcurl库进行http通讯网络编程

    C/C++ 用libcurl库进行http通讯网络编程 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_p ...

  6. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  7. C++ 用libcurl库进行http通讯网络编程 【转】

    http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html C++ 用libcurl库进行http通讯网络编程 目录索引: 一.Lib ...

  8. 暑假集训Day2 互不侵犯(状压dp)

    这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...

  9. 暑假集训Day1 整数划分

    题目大意: 如何把一个正整数N(N长度<20)划分为M(M>=1)个部分,使这M个部分的乘积最大.N.M从键盘输入,输出最大值及一种划分方式. 输入格式: 第一行一个正整数T(T<= ...

随机推荐

  1. 记一次在mac上源码编译curl,使其支持NSS的过程

    一.背景 在一次学习https原理的过程中,希望客户端指定特定的cipher suites来抓包分析SSL/TLS的握手过程,就想到了使用curl工具,而不是使用浏览器. 接下来使用man curl找 ...

  2. mysql 5.5和5.6版本关于timestamp not null类型字段关于null的处理

    Server version: 5.5.33-31.1-log Percona Server (GPL), Release rel31.1, Revision 566 mysql> CREATE ...

  3. DataFrame.loc的区间

    df.loc[dates[0:1],'E']和df.loc[dates[0]:dates[1],'E']不同. 前者不包含dates[1],后者是包含dates[1]的. 根据Python3中实际代码 ...

  4. hdu 6205: card card card【输入挂】

    题目链接 感谢 http://blog.csdn.net/txgang/article/details/77568491 以下供参考 getchar读入法 2683MS FastIO法 MX=1e2 ...

  5. 基于MaxCompute InformationSchema进行冷门表热门表访问分析

    一.需求场景分析 在实际的数据平台运营管理过程中,数据表的规模往往随着更多业务数据的接入以及数据应用的建设而逐渐增长到非常大的规模,数据管理人员往往希望能够利用元数据的分析来更好地掌握不同数据表的使用 ...

  6. gitHub pull Request记录

    1.fork开源项目到自己的gitHub,点fork,然后clone即可 2.提交本地修改,push到自己的代码库 3.点new pull Request,写点备忘信息 注意确保修改的正确性,如果运行 ...

  7. Xcode模拟器快捷键

    command + 左右 = 横竖屏旋转 command + H + H = 切入层级后台模式

  8. JS占位符替换

    String.prototype.format = function() { if(arguments.length === 0) return this; var obj = arguments[0 ...

  9. 有关CSS的一些事

    看到两篇关于CSS的文章,总结的非常好.因为没有那个网站的账号,没法收藏转发,所以把链接贴在这里,分享给大家.这两篇文章对于初学CSS的人来说,总结得很精炼准确,而且通俗易懂.推荐~ 有关CSS的一些 ...

  10. 关于线段树or 树状树状 在二维平面搞事情!Orz

    第一式:https://ac.nowcoder.com/acm/contest/143/I 题意: 有 n 个点,一个点集 S 是好的,当且仅当对于他的每个子集 T,存在一个右边无限长的矩形,使得这个 ...