首页 > 其他分享 >P5143 攀爬者(结构体+sort排序)

P5143 攀爬者(结构体+sort排序)

时间:2023-11-23 22:23:12浏览次数:32  
标签:sort int 攀爬 数组 include P5143 cmp

P5143 攀爬者

sort排序:
对于数组而言
sort(数组+begin,数组+stop)(左闭右开)
例:
sort(a+1,a+n+1)=sort(a[1]~a[n])
对于结构体
在数组基础上多一个cmp
运用:sort(数组+begin,数组+stop,cmp)
cmp本身需要定义一个函数来表示比较。

#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
using namespace std;

struct mountain {
	int x, y, z;
} a[50001];

bool cmp(mountain b, mountain c) {
	return b.z > c.z;
}
double ans;

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i].x >> a[i].y >> a[i].z;
	}
	sort(a + 1, a + n, cmp);
	for (int i = 1; i <= n - 1; i++) {
		ans += sqrt((a[i].x - a[i + 1].x) * (a[i].x - a[i + 1].x) + (a[i].y - a[i + 1].y) * (a[i].y - a[i + 1].y) +
		            (a[i].z - a[i + 1].z) * (a[i].z - a[i + 1].z));
	}
	printf("%.3f", ans);
	return 0;
}

标签:sort,int,攀爬,数组,include,P5143,cmp
From: https://www.cnblogs.com/sdlypsck/p/17852642.html

相关文章

  • Princeton Algorithms, Part I week3 Quick Sort
    QuickSort今天学习quicksort,quicksort的基本思想是有一个数组,先shuffle以后,保证数组的item位置是均匀分布的,选择一个item然后,把所有比这个item大的放在item右边,所有比这个item小的放在左右,然后递归的进行这个操作,如下图所示 这里面的partition部分如何实现呢?首先定义两个指......
  • InsertionSort
     JavaprivatestaticvoidinsertionSort(int[]array){for(inti=1;i<array.length;++i){intindex=i-1,mark=array[i];while(mark<array[index]){array[index+1]=array[index];......
  • selectionSort
      JavapublicclassErsatz{publicstaticvoidmain(String[]args){int[]ints=newint[8];for(intv=0;v<ints.length;++v){ints[v]=(int)(Math.random()*9)+1;}System.out.println(Arr......
  • 重写Java中Arrays数组工具类提供的sort()排序函数中的比较器类Comparator的compare()
    排序方法是我们日常开发或者写功能函数,或者实现算法时,常调用的方法。有时甚至,开发人员自己还要写一写排序算法。今天,我们来修改Java官方提供的Arrays工具类中的静态排序sort()方法。反问一下,为什么要重写呢?官方提供的还不够你用?回答:确实不够用,官方默认是对数字,特别是sort比较的......
  • 使用Linux命令sort及uniq对文件或屏幕输出进行分组统计
    sortdemo.txt|uniq-c|sort-rn|head-3在日常Linux操作常常需要对一些文件或屏幕数次中重复的字段进行分组统计。实现的方法非常简单,核心命令为:sort|uniq--c|sort-rn。sort:对指定列进行排序,使该列相同的字段排练到一起uniq-c:uniq命令用于检查及删除文本文件......
  • 入门c语言--3---关于qsort函数的一些理解
     qsort函数是c语言库函数的一种,作用是将所给的数组中的元素按要求进行排序。 qsort函数可以理解为冒泡函数的进阶,冒泡函数只能对一些如int,char等类型的数组进行排序,当遇到自主定义的struct类型的数组时便不能进行排序。此时便可以通过qsort函数进行排序。  在使用qsort函数......
  • sortablejs拖拽功能
    官网:http://www.sortablejs.com/中文文档:https://www.itxst.com/sortablejs/neuinffi.htmlgithub地址如下:https://github.com/SortableJS/react-sortablejsimportReact,{FC,useState}from'react';import{ReactSortable}from'react-sortablejs';......
  • Princeton Algorithms, Part I week2 Merge Sort
    Mergesort今天学习mergesort这个排序算法的思想就是,不停的将数组二分,再将两个子数组不停归并。其中有一个操作叫merge如下图所示。左右两边两个部分是有序的,然后思想也很简单有两个指针i和j,i指向lo,j指向mid+1,然后比较两个指针所指的大小,如果小就选出来排到数组中,如果i大于mid......
  • shell脚本之“sort“、“uniq“、“tr“、“cut“、“split“、“paste“以及“eval“
    一、sort命令1.1、作用以行为单位对文件内容进行排序也可以根据不同的数据类型来排序1.2、语法格式sort[选项]参数catfile|sort选项1.3、常用选项-f∶忽略大小写,会将小写字母都转换为大写字母来进行比较;-b∶忽略每行前面的空格;-n∶按照数字进行排序;-r∶反向......
  • 表格数据拖拽排序 sortable.js
    需求拖拽表格的行数据,实现排序。问题拖拽后调用接口,但视图没变,还是原来的顺序场景:拖拽表格行数据后,tableDataArr中数据的orderNum值会改变,实现拖拽换序。期望情况:页面根据更改后的orderNum重新排序。实际情况:接口数据变了,但是页面行数据没有改变。也就是说,页面没有实现......