P5143 攀爬者
Posted 梦西空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P5143 攀爬者相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
int N;
int qsort(int input[][3],int low,int high);
//快速排序,对input数组的low-high进行排序
void Quicksort(int input[][3],int low,int high)
if(low<high)
int mid=qsort(input,low,high);
Quicksort(input,low,mid-1);
Quicksort(input,mid+1,high);
//进行一次快排,返回枢纽的位置
int qsort(int input[][3],int low,int high)
input[0][2]=input[low][2]; //选择low号位当枢纽
input[0][1]=input[low][1];
input[0][0]=input[low][0];
while(low<high)
while(low<high&&input[high][2]>=input[0][2])
high--;
input[low][0]=input[high][0];
input[low][1]=input[high][1];
input[low][2]=input[high][2];
while(low<high&&input[low][2]<=input[0][2])
low++;
input[high][0]=input[low][0];
input[high][1]=input[low][1];
input[high][2]=input[low][2];
input[low][0]=input[0][0];
input[low][1]=input[0][1];
input[low][2]=input[0][2];
return low;
int main()
cin>>N;
int i,j;
int input[N+1][3];
for(i=1;i<=N;i++)
for(j=0;j<3;j++)
scanf("%d",&input[i][j]);
Quicksort(input,1,N);
double sum=0;
for(i=1;i<N;i++)
sum+=sqrt((input[i][0]-input[i+1][0])*(input[i][0]-input[i+1][0])+(input[i][1]-input[i+1][1])*(input[i][1]-input[i+1][1])+(input[i][2]-input[i+1][2])*(input[i][2]-input[i+1][2]));
printf("%.3lf",sum);
以上是关于P5143 攀爬者的主要内容,如果未能解决你的问题,请参考以下文章