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

相关推荐
bubiyoushang8882 分钟前
基于 TGLVM 算法的迁移学习分类系统
算法·分类·迁移学习
Hua-Jay4 分钟前
OpenCV联合C++/Qt 学习笔记(十八)----二维码检测及积分图像
c++·笔记·qt·opencv·学习
Rabitebla11 分钟前
深入理解 C++ STL:stack 和 queue 的底层原理与实现
c语言·开发语言·数据结构·c++·算法
通信仿真爱好者20 分钟前
【无标题】
人工智能·算法·机器学习
誰能久伴不乏27 分钟前
从底层看透音视频架构:FFmpeg 实时视频推流深度解析
linux·c++·tcp/ip·ffmpeg
此生决int29 分钟前
C++快速上手java备战期末考——初识java
java·c++·期末复习
落羽的落羽32 分钟前
【算法札记】练习 | Week3
linux·服务器·数据结构·c++·人工智能·算法·动态规划
计算机安禾35 分钟前
【c++面向对象编程】第13篇:继承(三):同名隐藏与作用域覆盖
开发语言·c++·iphone
Shadow(⊙o⊙)43 分钟前
qt内详解信号和槽的基本概念+实例演示
开发语言·前端·c++·qt·学习
艾iYYY1 小时前
类和对象(详解初始化列表, static成员变量, 友元,内部类)
c语言·数据结构·c++·算法