编程练习,基础2920: 攀爬者题解(洛谷P5143)

一点都不欢乐 算法基础篇 44 0
不断提升技能,才能在职场中立于不败之地!全网最全C++题库,助您成为编程领域的佼佼者。

题解1

#include<iostream>
#include<cmath>
#include<algorithm>
#include<iomanip>
using namespace std;
int i,j; 
double d; //表示总距离 
struct distan{
    int x,y,z;  
}dis[50010];    

bool mycmp(distan a,distan b){
    return(a.z<b.z);  //高度升序排列 
}
int main(){
    int n;   //n代表选手总数 m代表计划录取人数 
    cin>>n;
    for(i=1; i<=n; i++){  //输入 
        cin>>dis[i].x>>dis[i].y>>dis[i].z;
    }
    
    sort(dis+1,dis+n+1,mycmp);//排序 
    
    for(i=1; i<n; i++){  //求总距离 
        d+=sqrt(pow(dis[i].x-dis[i+1].x,2)+pow(dis[i].y-dis[i+1].y,2)+pow(dis[i].z-dis[i+1].z,2)); 
    } 
    cout<<fixed<<setprecision(3)<<d;
    return 0;
}
编程练习,基础2920: 分数线划定题解

(图片来源网络,侵删)

题解2

#include <bits/stdc++.h>
using namespace std;
int n,m;
double ans;
struct node{
    int a,b,c;
}a[10000005];
bool cmp(node x,node y){按高度排序
    return x.c<y.c; 
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){输入
        cin>>a[i].a>>a[i].b>>a[i].c;
    }
    sort(a+1,a+1+n,cmp);
    for(int i=1;i<n;i++){计算所以距离和
        ans+=sqrt((a[i].a-a[i+1].a)*(a[i].a-a[i+1].a)+(a[i].b-a[i+1].b)*(a[i].b-a[i+1].b)+(a[i].c-a[i+1].c)*(a[i].c-a[i+1].c));
    }
    printf("%.3f",ans);
}


不断挑战自我,才能突破极限!全网最全C++题库,让您在编程道路上越走越远。

标签: 编程练习 基础2920: 分数线划定题解