题解 | qcjj寄快递

qcjj寄快递

https://www.nowcoder.com/practice/229bbec64b6b42e48171bef8f88ada47

#include <bits/stdc++.h>
using namespace std;

//数据准备
const double LN2=log(2.0);
const double INV_LN2=1.0/LN2;


//核心函数
double min_time(double e){
    if(e*LN2>=1.0){
        double k=log2(e*LN2);
        return 2.0*k+2*e/pow(2.0,k);

    }
    else{
        return 2.0*e;
    }
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    vector<pair<double,double>>points(n);//pair是标准库中模版,用于存储两个相关的值
    for(int i=0;i<n;i++){
        cin>>points[i].first>>points[i].second;//points[i].first存储x坐标,points[i].second存储y的坐标

    }
    double total=0;
    for(int i=1;i<n;i++){
        double dx=points[i].first-points[i-1].first;
        double dy=points[i].second-points[i-1].second;
        double e=sqrt(dx*dx+dy*dy);
        total+=min_time(e);
    }
    cout<<fixed<<setprecision(10)<<total<<endl;
    return 0;

}
// 64 位输出请用 printf("%lld")

我是菜鸟喵,说说我的思路

一道数学求值题,打字有点麻烦,直接上图片

全部评论
主播主播我是你粉丝🤩
点赞 回复 分享
发布于 02-19 23:20 广东

相关推荐

评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务