链接:https://ac.nowcoder.com/acm/contest/27302/L
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
谷宝最近完成了ImmersiveEngineering(IE)的各种重型机械和发电机的建设,但是基地上空密密麻麻的电线让他觉得非常不美观。他决定用工程师剪线钳把所有电线全部拆除之后重新用高压电线设置电网。

每一个重型机械或发电机都有且只有一个接线器用来连接电线,谷宝的目标只有一个,那就是让整个基地的所有接线器连在同一个电网中所需求的电线总长度最短。由于电线在制作时只能制作整数长度,所以对于两接线器之间距离不为整数的,其需求的电线长度需要向上取整

形式上,若两接线器A、B的坐标分别为(X_A,Y_A,Z_A),(X_B,Y_B,Z_B)(X
A

,Y
A

,Z
A

),(X
B

,Y
B

,Z
B

),则他们之间的距离为\lceil \sqrt{(X_A-X_B)2+(Y_A-Y_B)2+(Z_A-Z_B)^2}\rceil⌈
(X
A

−X
B

)
2
+(Y
A

−Y
B

)
2
+(Z
A

−Z
B

)
2


⌉,其中\lceil \rceil⌈⌉为向上取整,即不小于当前数字的最小整数。例如\lceil 3\rceil = 3⌈3⌉=3,\lceil 3.14\rceil=4⌈3.14⌉=4。

输入描述:
第一行包含一个正整数n(n\leq2000)n(n≤2000),表示接线器的数量。

接下来nn行,每行包含三个整数xx、yy和zz(|x|,|y|,|z|\leq10^9∣x∣,∣y∣,∣z∣≤10
9
)表示接线器的空间坐标。

输出描述:
需求的电线的最短总长度。
示例1
输入
复制
5
0 0 0
1 0 0
-1 0 0
0 1 0
0 -1 0
输出
复制
4
备注:
c++的cmath头文件中的ceil函数可以实现浮点数的向上取整,例如:ceil(x)返回x向上取整的结果。

思路 :

  • 完全图的最小生成树,数据保证O(n2)O(n^2)O(n2)能过
  • 这里用prim解最小生成树问题
  • 如果用kruskai从边入手,要把这个完全图中所有边都存一遍,且每条边还要存点的信息,是很麻烦的;如果用prim从点入手,每次考虑点即可,要存的信息也只有点的坐标,以及当前点的距离(使用函数,不需要预处理所有边)
#include <iostream>
#include <cstring>
#include <vector>
#include <math.h>
using namespace std;typedef long long ll;
const int N = 2010;int n;
bool st[N];
ll dist[N];
struct Point
{ll x, y, z;
};
Point p[N];ll get_dist(int a, int b)
{return ceil(sqrt((p[a].x - p[b].x) * (p[a].x - p[b].x) + (p[a].y - p[b].y) * (p[a].y - p[b].y) + (p[a].z - p[b].z) * (p[a].z - p[b].z)));
}int main()
{cin >> n;for (int i = 0; i < n && cin >> p[i].x >> p[i].y >> p[i].z; i ++ );memset(dist, 0x3f, sizeof dist);dist[0] = 0;ll res = 0;for (int i = 0; i < n; i ++ ){int t = -1;for (int j = 0; j < n; j ++ )if (!st[j] && (t == -1 || dist[t] > dist[j]))t = j;st[t] = true;res += dist[t];for (int j = 0; j < n; j ++ )dist[j] = min(dist[j], get_dist(t, j));}cout << res << endl;
}

WireConnection 最小生成树,prim 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛相关推荐

  1. 第八届“图灵杯”NEUQ—ACM程序设计竞赛个人赛(同步赛)

    A题--切蛋糕 龙龙有一块蛋糕,现在他想将蛋糕平均切成k块,分给他的k名hxd.但是不幸的是,因为龙龙不擅长切蛋糕,他每一次只能将一块蛋糕平均分成两份.例如,将一块大小为1的蛋糕分割成两块大小为1/2 ...

  2. 2018年第九届蓝桥杯—C/C++程序设计省赛解题

    2018-4-14 感觉蓝桥杯的风格变了,以前都是暴力搜索类的题目比较多,然而这次并不是- 1.第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意: ...

  3. 第十届“图灵杯”NEUQ-ACM程序设计竞赛个人赛解题报告

    第十届"图灵杯"NEUQ-ACM 题目链接 解题报告 D 文稿修订 思路 代码 F 吃包子 思路 代码 G 数字鉴定 思路 代码 H 线性变换 思路 代码 I 试题排版 思路 代码 ...

  4. 第九届蓝桥杯国一参赛感想

    参赛感想 大三下参加的第九届蓝桥杯大赛,荣获C/C++B组全国一等奖.说起为什么参加蓝桥杯,其目的当然是为了大四的保研拿点筹码.我最开始接触到这种编程大赛是在大二下,参加了我们学校微软社团组办的编程能 ...

  5. 第九届蓝桥杯java B组—第二题方格计数(详细介绍)

    文章目录 1.题目如下 2.解题思路 3.详细讲解 4.代码实例 5.答案 最近正在练习蓝桥杯的习题,做到第九届篮球杯的第二题(方格计数)的时候,发现没有思路,就上网上查了一些资料,感觉说的不够详细, ...

  6. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

  7. 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf

    第九届蓝桥杯单片机组省赛试题 "彩灯控制器"的程序设计与调试 (70 分) 一.基本要求 1.1 使用CT107D 单片机竞赛板,完成"彩灯控制器"功能的程序设 ...

  8. problem b: 一年中的第几天_第九届蓝桥杯B组试题

    1. 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. "============= ...

  9. 第九届蓝桥杯C++B组

    第九届蓝桥杯C++B组C++与python解法 1.标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余 ...

  10. 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数

    阶乘位数 题目描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&qu ...

最新文章

  1. docker-compose:使用docker-compose部署nginx+supervisor+uwsgi+flask程序(mongodb)
  2. POI Excel表格合并,边框设置
  3. mysql 迭代更新_MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
  4. 腾讯---生成格雷码
  5. volatile可以保证原子性吗
  6. 英语基础语法(八)-时态
  7. 通过jsp向mysql批量导入数据_JSP+Servlet+C3P0+Mysql实现的图书馆管理系统
  8. 苹果:今年没有5G iPhone 那就先来个5G版MacBook吧?
  9. CF567E President and Roads
  10. 简述deque容器的插入删除原理
  11. MySQL 8.0.27 下载、安装与配置 超详细教程(Windows64位)
  12. cisco路由器配置
  13. 【js与jquery】产品详情页面常用的js特效
  14. 怎样使用迅雷提高下载速度
  15. 2022年电工(初级)考试报名及电工(初级)最新解析
  16. Linux 日志切割神器 Logrotate 原理和配置详解(附多生产实例)
  17. 宋宝华: 用off-cpu火焰图进行Linux性能分析
  18. Apple watch 心率监测的原理是什么
  19. 为什么 1KB 等于 1024 B
  20. 学习webpy官网示例笔记

热门文章

  1. bseg---faglflexta
  2. ABAP中的系统变量SY-INDEX与SY-TABIX
  3. abap中利用se95还原程序到原始版本
  4. 加快LOOP嵌套循环的一个方法
  5. 他手边有太多事要做了
  6. 释疑のABAP输入框字符自动变成大写问题
  7. 这款国产BI我推荐了:Tableau+SPSS+python的综合集成
  8. python连接mongodb进行查询_Python中的MongoDB基本操作:连接、查询实例
  9. 用pkg给手机装linux,pkg-config的使用方法
  10. php tp 重加载页面,thinkPHP线上自动加载异常与修复方法实例分析