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

相关推荐
爱编码的小八嘎16 分钟前
第3章 Windows运行机理-3.1 内核分析(1)
c语言
罗湖老棍子17 分钟前
【例 2】选课(信息学奥赛一本通- P1576)
算法·树上背包·树型动态规划
每天要多喝水19 分钟前
动态规划Day33:编辑距离
算法·动态规划
每天要多喝水20 分钟前
动态规划Day34:回文
算法·动态规划
weixin_4772716923 分钟前
马王堆帛书《周易》系统性解读(《函谷门》原创)
算法·图搜索算法
AomanHao1 小时前
【ISP】基于暗通道先验改进的红外图像透雾
图像处理·人工智能·算法·计算机视觉·图像增强·红外图像
We་ct1 小时前
LeetCode 226. 翻转二叉树:两种解法(递归+迭代)详解
前端·算法·leetcode·链表·typescript
大熊背1 小时前
APEX系统中为什么 不用与EV0的差值计算曝光参数调整量
人工智能·算法·apex·自动曝光
REDcker1 小时前
HDR Vivid 技术介绍
数据库·算法·视频·sdr·屏幕·显示技术·dhr
ab1515171 小时前
2.18完成109、112、113
算法