排序刷题9

题目来源:攀爬者 - 洛谷

今天是除夕夜,祝大家除夕快乐,新的一年继续和大家陪伴刷题,祝大家龙年大吉,万事顺意,也祝今年找工作的伙伴们,顺利找到心仪的岗位。

解题思路 :这道题其实还满简单的,用结构体+排序+数学。使用sort函数和自定义比较函数对数组进行排序,根据每个点的z值从小到大排序。然后依次算欧几里得距离,求和就可以解决啦。

cpp 复制代码
#include<iostream>
#include<algorithm>
#include <cmath>
using namespace std;

struct Climbs
{
	int x, y, z;
}a[50000];

// 自定义比较函数,用于排序
bool cmp(Climbs a, Climbs b)
{
	return a.z < b.z;
}



int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i].x >> a[i].y >> a[i].z;
	}
	// 根据z值对点进行排序
	sort(a, a + n, cmp);
	// 计算总距离
	double total_distance = 0;
	for (int i = 1; i < n; i++)
	{
		double distance = sqrt(pow(a[i].x - a[i-1].x, 2) +
			                   pow(a[i].y - a[i-1].y, 2) +
			                   pow(a[i].z - a[i-1].z, 2));
		total_distance += distance;

	}
	// 输出总距离,保留三位小数
	printf("%.3f\n", total_distance);
	return 0;
}

ps:记得保留三位小数喔,不然系统过不去~

相关推荐
带土14 分钟前
8. C++ explicit 关键字
开发语言·c++
im_AMBER4 分钟前
Leetcode 103 反转链表 II
数据结构·c++·笔记·学习·算法·leetcode
iYun在学C5 分钟前
驱动程序(创建设备节点实验)
linux·c语言·嵌入式硬件
rgeshfgreh8 分钟前
回溯算法精解:排列、子集与组合
python·算法·深度优先
Ka1Yan23 分钟前
[链表] - 代码随想录 24. 两两交换链表中的节点
数据结构·链表
rit843249930 分钟前
有限元算法求解铁木辛柯梁梁静力问题实例
算法
智驱力人工智能31 分钟前
矿山皮带锚杆等异物识别 从事故预防到智慧矿山的工程实践 锚杆检测 矿山皮带铁丝异物AI预警系统 工厂皮带木桩异物实时预警技术
人工智能·算法·安全·yolo·目标检测·计算机视觉·边缘计算
Python_Study202534 分钟前
制造业企业如何构建高效数据采集系统:从挑战到实践
大数据·网络·数据结构·人工智能·架构
忆锦紫35 分钟前
图像降噪算法:中值滤波算法及MATLAB实现
图像处理·算法·matlab
知乎的哥廷根数学学派36 分钟前
基于多分辨率注意力脉冲神经网络的机械振动信号故障诊断算法(西储大学轴承数据,Pytorch)
人工智能·pytorch·深度学习·神经网络·算法·机器学习