洛谷传送门

loj传送门

一道蛮基础的最小生成树的题

题意也没绕什么圈子

只是叙述的有点累赘而已(loj上是这样的

也就读入加建边需要稍稍稍多想一下下

对于我这么一个蒟蒻

这是一道很好的板子题

(洛谷和loj上有一点点小不同,主要按loj的题面)

--------------------------------------------------------------------------------

(今日份懒得整题面qwq)

--------------------------------------------------------------------------------

k个村庄装上卫星设备后

可以把这k个村庄看成一个点

(这不是缩点qwq)

那么只需要求(n-k+1)个点和(n-k)条边所构成的最小生成树

kruskal一下

最后一次操作室加入生成树的边权就是最终答案

--------------------------------------------------------------------------------

显然有可能排序后

kruskal到的边不止(n-k)条

但是我比较emm...

就wawawa喽

--------------------------------------------------------------------------------

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std; inline int read()
{
int sum = ,p = ;
char ch = getchar();
while(ch < '' || ch > '')
{
if(ch == '-')
p = -;
ch = getchar();
}
while(ch >= '' && ch <= '')
{
(sum *= ) += ch - '';
ch = getchar();
}
return sum * p;
} int n,k,cnt,tot;
double ans;
int x[],y[],fa[]; struct edge
{
int l,r;
double wei;
}e[]; double getdis(int x1,int y1,int x2,int y2)
{
return (double) sqrt((double)(x1 - x2)*(x1 - x2) + (double)(y1 - y2) * (y1 - y2));
} int findfa(int o)
{
if(o == fa[o])
return o;
else
return fa[o] = findfa(fa[o]);
} int cmp(edge a,edge b)
{
return a.wei < b.wei;
} void kruskal()
{
int u,v,mrk = ;
sort(e+,e+cnt+,cmp);
for(int i = ;i <= cnt;i++)
{
u = findfa(e[i].l);
v = findfa(e[i].r);
if(u == v)
continue;
fa[u] = v;
mrk++;
if(mrk == n - k)
{
ans = e[i].wei;
break;
}
}
} int main()
{
n = read(),k = read();
if(k >= n)
{
printf("0.00");
return ;
}
if(k == )
k = ;
for(int i = ; i <= n; i++)
x[i] = read(),y[i] = read();
for(int i = ; i <= n; i++)
for(int j = i + ; j <= n; j++)
{
cnt++;
e[cnt].l = i;
e[cnt].r = j;
e[cnt].wei = getdis(x[i],y[i],x[j],y[j]);
}
for(int i = ;i <= n;i++)
fa[i] = i;
kruskal();
printf("%.2lf",ans);
return ;
}

Arctic Network(洛谷)--北极通讯网络(loj)的更多相关文章

  1. 洛谷 P1546 最短网络 Agri-Net

    题目链接 https://www.luogu.org/problemnew/show/P1546 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当 ...

  2. 洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)

    洛谷P1546 最短网络 Agri-Net 最小生成树模板题. 直接使用 Kruskal 求解. 复杂度为 \(O(E\log E)\) . #include<stdio.h> #incl ...

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

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

  4. 洛谷P2812校园网络【Network of Schools加强版】

    题目背景 浙江省的几所\(OI\)强校的神犇发明了一种人工智能,可以\(AC\)任何题目,所以他们决定建立一个网络来共享这个软件.但是由于他们脑力劳动过多导致全身无力身体被\(♂\)掏\(♂\)空,他 ...

  5. 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树

    一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...

  6. 【题解】洛谷P1262 间谍网络 (强连通分量缩点)

    洛谷P1262:https://www.luogu.org/problemnew/show/P1262 思路 一看题目就知道是强连通分量缩点 当图中有强连通分量时 将其缩点 我们可以用dfn数组判断是 ...

  7. 洛谷 1262 间谍网络 Tarjan 图论

    洛谷 1262 图论 tarjan 并不感觉把这道题目放在图的遍历中很合适,虽然思路比较简单但是代码还是有点多的,, 将可收买的间谍的cost值设为它的价格,不可购买的设为inf,按照控制关系连图,T ...

  8. 洛谷$P2604\ [ZJOI2010]$网络扩容 网络流

    正解:网络流 解题报告: 传送门$QwQ$ 昂第一问跑个最大流就成不说$QwQ$ 然后第二问,首先原来剩下的边就成了费用为0的边?然后原来的所有边连接的两点都给加上流量为$inf$费用为$w$的边,保 ...

  9. 洛谷 P2812 校园网络【[USACO]Network of Schools加强版】 解题报告

    P2812 校园网络[[USACO]Network of Schools加强版] 题目背景 浙江省的几所OI强校的神犇发明了一种人工智能,可以AC任何题目,所以他们决定建立一个网络来共享这个软件.但是 ...

随机推荐

  1. 【Unity|C#】基础篇(5)——分部类与分部函数(partial)

    [学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...

  2. 谷歌浏览器安装apizza

    接口测试是卡发中不可缺少的一环,那么常用的postman是英文就很不方便一些小伙伴的使用,所以此工具和postman功能相同且升级并且是中文模式 安装: 链接:https://pan.baidu.co ...

  3. Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099

    方法:把catalina.bat 文件中set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m这行去掉,具体看下面两篇博客 https://blo ...

  4. JMeter CSRFToken认证登陆(正则提取器的使用)

    转自:http://blog.csdn.net/lion19930924/article/details/51189210 前几天用JMeter模拟登陆,但是这个网站开启了csrf认证,因此在post ...

  5. docker installation and usage

    From 一.环境配置的难题 软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装.只有 ...

  6. IntelliJ IDEA,酷炫插件系列,提高你的工作效率【plugins】

                             今天介绍一下IDEA的一些炫酷的插件,IDEA强大的插件库.                          不仅能给我们带来一些开发的便捷,还能体 ...

  7. 自动构建自己的ASP.NET Core基础镜像

    在开发过程中,我们可以根据自身情况来定制自己的基础镜像,以便加快CI\CD构建速度以及提高开发体验.这里我们就以ASP.NET Core的基础镜像为例来进行讲解. 本次教程代码见开源库:https:/ ...

  8. DE1-LINUX运行

    在官网下载.img文件:网址:http://download.terasic.com/downloads/cd-rom/de1-soc/linux_BSP/ 写入DE1_SOC_SD.img文件: 打 ...

  9. 【Html】Html基本标记

    <!doctype html> <html> <head> <!--mata 元信息标记--> <meta charset="utf-8 ...

  10. 【js】子菜单吸顶(滚动到一定距离 容器置顶)附 无间断置顶 避免闪动

    思考逻辑:当向上滚动的高度>= 观察容器距离顶部高度 即可触发吸顶 以下代码在vue工程,作参考 handleScroll () { const scrollTop = window.pageY ...