排序刷题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:记得保留三位小数喔,不然系统过不去~

相关推荐
合方圆~小文11 小时前
4G定焦球机摄像头综合介绍产品指南
数据结构·数据库·人工智能
老蒋新思维11 小时前
反脆弱性设计:创始人IP与AI智能体如何构建愈动荡愈强大的知识商业|创客匠人
人工智能·网络协议·tcp/ip·算法·机器学习·创始人ip·创客匠人
Salt_072812 小时前
DAY 36 官方文档的阅读
python·算法·机器学习·github
FMRbpm12 小时前
串练习--------535.TinyURL的加密和解密
数据结构·c++·新手入门
GoWjw12 小时前
在C&C++中结构体的惯用方法
c语言·开发语言·c++
明洞日记13 小时前
【VTK手册027】VTK 颜色连续映射:vtkColorTransferFunction 深度解析与实战指南
c++·图像处理·算法·vtk·图形渲染
Bruce_kaizy13 小时前
c++单调数据结构————单调栈,单调队列
开发语言·数据结构·c++
默凉13 小时前
win 制作vs离线安装包
c++
阿坤带你走近大数据13 小时前
Python基础知识-数据结构篇
开发语言·数据结构·python
B_lack02613 小时前
西门子PLC结构化编程_线性插值算法功能块
算法·pid·西门子plc·博途·线性插值·开环控制