当前位置: 首页 > news >正文

蓝桥杯 17. 通电

通电

原题目链接

题目描述

2015 年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。

这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。

现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接地与发电站相通。

小明测量了所有村庄的位置(坐标)和高度。如果要连接两个村庄,小明需要花费:

sqrt((x1 - x2)^2 + (y1 - y2)^2) + (h1 - h2)^2

其中 (x1, y1, h1) 和 (x2, y2, h2) 分别是两个村庄的坐标和高度。

请帮助小明计算使所有村庄通电所需的最小费用。


输入描述

  • 第一行一个整数 n,表示村庄的数量。
  • 接下来的 n 行,每行包含三个整数 x y h,分别表示一个村庄的横坐标、纵坐标和高度。

第一个村庄(第 1 行)可以建立发电站。

数据范围:

  • 1 ≤ n ≤ 1000
  • 0 ≤ x, y, h ≤ 10000

输出描述

输出一行一个实数,表示最小通电费用,四舍五入保留两位小数


输入示例

4
1 1 3
9 9 7
8 8 6
4 5 4

输出示例

17.41

c++代码

#include<bits/stdc++.h>
#include<stdio.h>using namespace std;struct line {int a, b;double val;
};struct mycom{bool operator()(const line& a, const line& b) { return a.val > b.val; }
};vector<vector<int>> arr;
vector<int> vis;
line tem;
double ans = 0;
int n;double delta(int a, int b) {return sqrt((arr[a][0] - arr[b][0]) * (arr[a][0] - arr[b][0]) + (arr[a][1] - arr[b][1]) * (arr[a][1] - arr[b][1])) + (arr[a][2] - arr[b][2]) * (arr[a][2] - arr[b][2]);
}int main() {cin >> n;arr = vector<vector<int>>(n + 1, vector<int>(3)), vis = vector<int>(n + 1, 0);for (int i = 1; i <= n; i++) cin >> arr[i][0] >> arr[i][1] >> arr[i][2];int start = 1;priority_queue<line, vector<line>, mycom> q;for (int i = 0; i < n - 1; i++) {vis[start] = 1;for (int j = 1; j <= n; j++) {if (vis[j]) continue;tem.a = start, tem.b = j, tem.val = delta(start, j);q.push(tem);}while(vis[q.top().b]) q.pop();ans += q.top().val, start = q.top().b, q.pop();}printf("%.2lf", ans);return 0;
}//by wqs

题目解析

把所有边都连接起来,然后在这个完全图里面找最小生成树。


文章转载自:
http://brazier.hfytgp.cn
http://baseness.hfytgp.cn
http://cartology.hfytgp.cn
http://backstroke.hfytgp.cn
http://chassepot.hfytgp.cn
http://algonquian.hfytgp.cn
http://aurar.hfytgp.cn
http://astable.hfytgp.cn
http://bajree.hfytgp.cn
http://chastisable.hfytgp.cn
http://ascaris.hfytgp.cn
http://airsick.hfytgp.cn
http://avalanche.hfytgp.cn
http://changepocket.hfytgp.cn
http://algarroba.hfytgp.cn
http://carpaccio.hfytgp.cn
http://batcher.hfytgp.cn
http://checkbook.hfytgp.cn
http://brad.hfytgp.cn
http://arson.hfytgp.cn
http://catfall.hfytgp.cn
http://borderline.hfytgp.cn
http://cavalry.hfytgp.cn
http://backwind.hfytgp.cn
http://ataxy.hfytgp.cn
http://arthrosporic.hfytgp.cn
http://boswellian.hfytgp.cn
http://bootleg.hfytgp.cn
http://agroboy.hfytgp.cn
http://chronicler.hfytgp.cn
http://www.dtcms.com/a/172768.html

相关文章:

  • 嵌入式硬件设计全解析:从架构到实战
  • C/C++滑动窗口算法深度解析与实战指南
  • 89. 格雷编码
  • 时间同步服务
  • 签名去背景图像处理实例
  • Qwen3的“混合推理”是如何实现的
  • 黑马点评大总结
  • 在Excel中轻松处理嵌套JSON数据:json-to-excel插件使用指南
  • Vue3核心语法速成
  • 慢sql处理流程和常见案例
  • 20250505下载VLC for Android
  • git上常用的12个月份对应的英语单词以及月份英语缩写形式
  • 矩阵快速幂 快速求解递推公式
  • 二重指针和二维数组
  • 力扣119题解
  • 机场围界报警系统的研究与应用
  • 深入理解 CSS Flex 布局:代码实例解析
  • WMS仓库管理系统:Java+Vue,含源码及文档,集成仓储全流程管控,实现库存精准、作业高效、数据透明
  • 苹果公司正在与亚马逊支持的初创公司Anthropic展开合作
  • 【数据结构】第八章:排序
  • 网络编程套接字(一)
  • C语言数据在内存中的存储详解
  • 标题:试验台铁地板:革新之路
  • Untiy基础学习(六)MonoBehaviour基类的简单介绍
  • QT聊天项目DAY08
  • 下载core5compat 模块时,被禁止,显示 - servese replied: Forbbidden. -->换镜像源
  • 文旅行业淡旺季明显,如何做好人力资源规划?​
  • cgi技术初识
  • Python实现自动驾驶中的车道检测算法:从理论到实践
  • Debezium MySqlValueConverters详解