NC253077:小沙的悬崖

简介: NC253077:小沙的悬崖

链接:https://ac.nowcoder.com/acm/problem/253077

来源:牛客网

 

题目描述

小沙被困在两个巨大的墙壁之中快要被压死了,但是两个墙壁中间就是万丈悬崖,小沙会不断的向对面墙壁跳。两个墙壁的初始距离为s。小沙的初始速度是v0(相对于起跳墙壁),初始速度方向为水平,但由于重力的影响,小沙会有一个向下的加速度ggg,因此小沙的运动轨迹是抛物线。已知两个墙壁是以v1的相对速度匀速相向运动。当小沙跳到对面墙壁时,他会立刻重新起跳,初始速度仍然是v0相对于起跳墙壁),方向仍然是水平。请问小沙在被压死的那一刻一共飞了多少米?

我们计算小沙路程时,以小沙第一次起跳的墙壁作为参考系!

注:小沙可以视为质点,即忽略体积。

输入描述:

四个正整数s,v0,v1,g用空格隔开。

1≤s,v0,v1,g≤100

输出描述:

小沙一共飞行的路程长度。如果你的答案和标准答案的误差不超过10^{-4},则认为你的答案正确。

示例1

输入

复制

1 1 1 1

输出

复制

1.35509738


说明

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
double s,v0,v1,g;
double f(double x){
    return 1./2*x*sqrt(4*x*x+1)+1./4*asinh(2*x);
}
signed main(){
    cin>>s>>v0>>v1>>g;
    int t=100000;
    double ans=0;
    for(int i=1;i<=t;i++){
        double t=s/(v0+v1);
        double v=(i&1)?v0:v0+v1;
        double a=g/(2.*v*v);
        ans+=f(t*v*a)/a;
        s=s/(v0+v1)*v0;
    }
    printf("%.10lf\n",ans);
    return 0;
}

目录
相关文章
|
12月前
|
网络协议 Linux 网络安全
Linux命令(4)之nc
Linux命令(4)之nc
108 0
|
域名解析 网络协议 Shell
【工具】nc使用详解
本文将详细讲解nc使用以及相关网络知识,适合初学者
682 0
|
网络协议 数据库
[20171204]nc快速判断端口是否打开2.txt
[20171204]nc快速判断端口是否打开2.txt --//前几天写了一篇通过nc快速判断打开那些端口,链接如下: http://blog.itpub.net/267265/viewspace-2148121/ --//如果要判断一定的范围,可以执行如下: $ echo a | nc -w 1 -n -v  192.
1049 0
|
安全 Shell 网络安全