题解 | qcjj寄快递

qcjj寄快递

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

#include <stdio.h>
#include<math.h>
struct{
    double x;
    double y;
} a[100000];
int main() 
{
    long long int n;
    double sum=0.0,k;
    scanf("%lld",&n);
    double b[100000]={0.0},t[100000]={0.0};
    for(long long int i=0;i<n;i++)
    {
        scanf("%lf %lf",&a[i].x,&a[i].y);
    }
    for(long long int j=1;j<n;j++)
    {
        b[j]=sqrt(pow((a[j].x-a[j-1].x),2)+pow((a[j].y-a[j-1].y),2));
        k=log(b[j]*log(2))/log(2);
        k=k>0.0?k:0.0;
        sum+=t[j]=2*k+2*b[j]/pow(2,k);
    }
    printf("%lf",sum);
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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