洛谷 P5143 攀爬者 题解 快排

华为OD统一考试 - 模拟消息队列(Java & Python& JS & C++ & C ) 让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息, 阅读详情

攀爬者

题目描述

他在地形图上标记了 N N N 个点,每个点 P i P_i Pi​ 都有一个坐标 ( x i , y i , z i ) (x_i,y_i,z_i) (xi​,yi​,zi​)。所有点对中,高度值 z z z 不会相等。HKE 准备从最低的点爬到最高的点,他的攀爬满足以下条件:

(1) 经过他标记的每一个点;

(2) 从第二个点开始,他经过的每一个点高度 z z z 都比上一个点高;

(3) HKE 会飞,他从一个点 P i P_i Pi​ 爬到 P j P_j Pj​ 的距离为两个点的欧几里得距离。即, ( X i − X j ) 2 + ( Y i − Y j ) 2 + ( Z i − Z j ) 2 \sqrt{(X_i-X_j)^2+(Y_i-Y_j)^2+(Z_i-Z_j)^2} (Xi​−Xj​)2+(Yi​−Yj​)2+(Zi​−Zj​)2 ​

现在,HKE 希望你能求出他攀爬的总距离。

输入格式

第一行,一个整数 N N N 表示地图上的点数。

接下来 N N N 行,三个整数 x i , y i , z i x_i,y_i,z_i xi​,yi​,zi​ 表示第 i i i 个点的坐标。

输出格式

一个实数,表示 HKE 需要攀爬的总距离(保留三位小数)

样例 #1

样例输入 #1

5
2 2 2
1 1 1
4 4 4
3 3 3
5 5 5

样例输出 #1

6.928

提示

对于100%的数据, 1 ≤ N ≤ 50000 1\leq N\leq 50000 1≤N≤50000,答案的范围在 double 范围内。

原题

洛谷P5143——传送门

代码

#include <bits/stdc++.h>
using namespace std;
#define max_Heap(x) priority_queue<x, vector<x>, less<x>>
#define min_Heap(x) priority_queue<x, vector<x>, greater<x>>
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
typedef pair<long long, long long> PLL;
const double PI = acos(-1);

struct node
{
    double x, y, z; // 由于距离为小数,所以用double存储坐标可以方便运算距离
};

bool cmp(node a, node b)
{
    return a.z < b.z; // 根据z值排序
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    // 根据题目描述,HKE的攀爬路线是根据高度从低到高一个一个点的爬,即根据z值从小到大依次往上爬
    // 那么我们只需将读入的点的数据依据z值进行排序,再计算总距离即可
    int n;
    cin >> n;
    vector<node> point(n);
    for (int i = 0; i < n; i++)
    {
        cin >> point[i].x >> point[i].y >> point[i].z;
    }
    sort(point.begin(), point.end(), cmp); // 我们使用STL的快排函数,并自己定义比较函数
    double ans = 0;            // 存储总距离,即答案
    for (int i = 0; i < n - 1; i++)        // 由于需要计算的距离有n-1个,所以循环n-1次
    {
        // 第一个点的坐标
        double x1 = point[i].x;
        double y1 = point[i].y;
        double z1 = point[i].z;
        // 第二个点的坐标
        double x2 = point[i + 1].x;
        double y2 = point[i + 1].y;
        double z2 = point[i + 1].z;
        // 计算两点距离
        double distance = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2) + pow(z1 - z2, 2));
        // 总距离加上该结果
        ans += distance;
    }
    cout << fixed << setprecision(3) << ans << '\n'; // 记得保留三位小数

    return 0;
}
前端开发 - 完美解决video.js和flv.js视频同时播放数量限制的问题,即浏览器针对同一域名的请求限制问题(解决flv.js/video.js在页面播放最多不超过6个问题、浏览器并发请求限制数 flv.js,video.js,vue,reactive,uniapp,前端开发,flv视频同时播放有限制怎么办,浏览器限制多个视频同时播放怎么办,使用flv.js在前端播放,最多只能播放6个视频,突破浏览器域名并发限制,如何解决flvjs与videojs视频播放同时播放数量限制,video.js 一个页面同时播放多个视频的实例代码,解决网页视频最大只能播放6路的问题,浏览器只能播放6路http-flv流的解决方法,一个浏览器播放5个或者6个flv的视频就不能播放了,video.js 无法在页面同时播放多个 阅读详情

相关推荐

AlphaPose复现配置教程

AlphaPose是一种准确的多人姿态估计器,这是第一个在COCO数据集上达到70+ mAP (75 mAP)和在MPII数据集上达到80+ mAP (82.1 mAP)的开源系统。为了匹配跨帧的同一人的姿态,我们还提供了一种高效的在线姿态跟踪器,称为Pose Flow。这是第一个在PoseTrack挑战数据集上达到60+ mAP (66.5 mAP)和50+ MOTA (58.3 MOTA)的开源在线姿态跟踪器。AlphaPose支持Linux和Windows操作系统!指路👉。

m0_56661101的博客 4527

P5143 攀爬者

HKE 考完 GDOI 之后跟他的神犇小伙伴们一起去爬山。

lxtcdg的博客 371

Visual Studio 2022 社区版安装指南:从下载到配置的完整流程

本文详细介绍了Visual Studio 2022社区版的完整安装与配置流程,包括系统要求检查、官方下载步骤、工作负载选择、安装位置配置等关键环节。作为微软推出的免费集成开发环境,VS2022社区版支持多种编程语言,适合个人开发者和小型团队使用。文章还提供了常见问题解决和性能优化技巧,帮助用户高效完成开发环境搭建。

weixin_28829339的博客 876

P1104 生日

cjf 君想调查学校 OI 组每个同学的生日,并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多,没有时间,所以请你帮她排序。

zty20120913的博客 1077

第5.1节 构网控制:电压源特性与电压调节

摘要: 构网型变流器的核心物理本质是作为可控交流电压源,通过戴维南等效模型(受控电势源+低输出阻抗)自主建立并调节电压,增强电网电压刚度。其电压调节通过无功-电压闭环控制实现,内环为自动电压调节器(AVR),外环为无功-电压下垂特性,模拟同步发电机功能。关键技术包括自适应增益、虚拟阻抗补偿及动态限流策略,以应对弱电网稳定性、故障过流等问题。该设计满足《规范》对电压调节范围、动态无功支撑的要求,是高比例新能源电力系统电压稳定的关键解决方案。

技术工作者 1107

SOC-ATF 安全启动BL2流程分析(2)

Bl2的启动流程与bl1类似,主要区别是bl2的初始化流程比bl1更简单,但其可能需要加载更多的镜像,如bl31、bl32和bl33。由于bl2可以运行于el3或s-el1,它们的入口函数和处理流程都有所区别,为了简化分析我们选取比较常见的s-el1方式,以下为其总体执行流程:上图仅供参考,实际看一下代码结构:上面截图展示了 链接汇编文件,bl2_el3.ld.S 是指bl2 运行于el3;bl2.ld.S 是实现bl2运行于s-el1 .

z20230508的博客 1387

洛谷P5143攀爬者题解

这……是黄题??看到颜色是黄色的和题目中的一坨公式后再加上没仔细看题一直不敢做,今天看了一遍,感想是: 太水了???? 这个嘛 ,没必要讲了吧。 代码: #include <bits/stdc++.h> using namespace std; struct h { int x, y, z; } a[50005]; int n; double ans; bool cmp(h x, h y) { return x.z < y.z; } int main() { cin

m0_45379852的博客 982

【开关电源】开关电源实战经验分享

开关电源原理设计、Layout设计经验分享

weixin_42098658的博客 4168

洛谷 P5143 攀爬者

(3) HKE 会飞,他从一个点 ��Pi​ 爬到 ��Pj​ 的距离为两个点的欧几里得距离。即,(��−��)2+(��−��)2+(��−��)2(Xi​−Xj​)2+(Yi​−Yj​)2+(Zi​−Zj​)2​。他在地形图上标记了 �N 个点,每个点 ��Pi​ 都有一个坐标 (��,��,��)(xi​,yi​,zi​)。接下来 �N 行,三个整数 ��,��,��xi​,yi​,zi​ 表示第 �i 个点的坐标。(2) 从第二个点开始,他经过的每一个点高度 �z 都比上一个点高;

wujikong123的博客 456

WS2812和homeassistant握手

本文学习了WS2812和homeassistant握手,后期会分享更多有趣物联网的操作从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。...

vor234的博客 811

反应堆设计:基于MATLAB的反应堆仿真和分析,包括反应堆稳态分析、反应堆动态分析和反应堆安全分析 介绍

反应堆设计是利用计算机技术对核反应堆进行设计和模拟,以获得安全、高效、经济的核能发电系统。它是核能领域的重要组成部分,在电力生产、核医学、科学研究等领域有着广泛的应用。

走向CTO的路上... 1112

攀爬者(c++题解)

本人认为“ans+=sqrt((a[i].a-a[i+1].a)*(a[i].a-a[i+1].a)+(a[i].b-a[i+1].b)*(a[i].b-a[i+1].b)+(a[i].c-a[i+1].c)*(a[i].c-a[i+1].c));他在地形图上标记了 N 个点,每个点 Pi​ 都有一个坐标 (xi​,yi​,zi​)。(3) HKE 会飞,他从一个点 Pi​ 爬到 Pj​ 的距离为两个点的欧几里得距离。即,sqrt(Xi​−Xj​)2+(Yi​−Yj​)2+(Zi​−Zj​)2​。

hb_zhyu的博客 617

Windows 11 安装 JDK 25:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统上安装 JDK 25 的完整流程,包括从 Oracle 官网下载压缩包、解压至自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章推荐使用 ZIP 压缩包而非 EXE 安装程序,以实现绿色便携、多版本共存和灵活管理。最后通过一个使用 Java 25 新特性的示例程序,验证 JDK 的编译与运行环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 7661

洛谷:P5143 攀爬者(思维 / 距离)

传送门 思路: 按照z排序,最后再按顺序计算(欧几里得)距离并相加即可。 代码实现: #include<bits/stdc++.h> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #define lowbit(x) (x &(-x)) #define ls(x) x<<1 #define rs(

Satur9的博客 721

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

攀爬者详解|三维坐标排序与欧几里得距离计算(洛谷P5143)

掌握结构体排序与距离公式,3分钟解决三维空间路径问题,附C++竞赛级代码

stillwatersss的博客 659

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

洛谷-P5143 攀爬者

题目背景 HKE考完GDOI之后跟他的神犇小伙伴们一起去爬山。 题目描述 他在地形图上标记了NN个点,每个点Pi都有一个坐标(x_i,y_i,z_i)(xi​,yi​,zi​)。所有点对中,高度值zz不会相等。HKE准备从最低的点爬到最高的点,他的攀爬满足以下条件: (1) 经过他标记的每一个点; (2) 从第二个点开始,他经过的每一个点高度zz都比上一个点高; (3) HKE会飞,他从一个点Pi爬到Pj的距离为两个点的欧几里得距离。即,\sqrt{(X_i-X_j)^2+(Y_i-Y_j)^2

weixin_43098069的博客 1481

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【洛谷 P5143】攀爬者 题解(结构体排序)

HKE 考完 GDOI 之后跟他的神犇小伙伴们一起去爬山。

HEX9CF的技术博客 522

洛谷_P5143 攀爬者_python写法

【代码】洛谷_P5143 攀爬者_python写法。

Hooray11的博客 389

Kmp算法完整代码

#include<iostream> #include<cstdio> #include<fstream> #include<algorithm> #include<cmath> #include<deque> #include<vector> #include<queue> #include<s...

Steel_Knife的博客 3754

P5143 攀爬者(快速排序)

HKE 考完 GDOI 之后跟他的神犇小伙伴们一起去爬山。

jungleirim的博客 353

【洛谷】P5143 攀爬者

#include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace std; int n; struct p{ int x; int y; int z; }ps[50010]; bool cmp(struct p a, struct p b){ return a.z < b.z; } int mai

恒治学 417

第一周训练

第一周训练

m0_63073602的博客 321

每日一题 第二十五期 攀爬者

HKE 考完 GDOI 之后跟他的神犇小伙伴们一起去爬山。

2301_80882026的博客 540

洛谷 P5143 攀爬者 - 详细解题思路

cin >> p;i < p;i++)i < p;

2501_94574030的博客 711
上一篇: 洛谷 P1781 宇宙总统 题解
下一篇: CF ABBYY Cup 3.0 - Finals A2. Oh Sweet Beaverette 题解 前缀和 贪心
bbc_ouo
博客等级 码龄3年 2096粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值