洛谷 P1033 自由落体

      洛谷 P1033 自由落体

题目描述

在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,,n1 。在地面上有一个小车(长为 L ,高为 K ,距原点距离为 S1 )。已知小球下落距离计算公式为 d=0.5×g×(t2) ,其中 g=10 , t 为下落时间。地面上的小车以速度 V 前进。

如下图:

小车与所有小球同时开始运动,当小球距小车的距离 0.0001 (感谢Silver_N修正) 时,即认为小球被小车接受(小球落到地面后不能被接受)。

请你计算出小车能接受到多少个小球。

输入输出格式

输入格式:

键盘输入:

H,S1,V,L,K,n(≤ H,S1,V,L,K,≤ 100000)

输出格式:

屏幕输出:

小车能接受到的小球个数。

输入输出样例

输入样例#1: 复制
5.0 9.0 5.0 2.5 1.8 5
输出样例#1: 复制
1

说明

当球落入车的尾部时,算作落入车内。

思路:物理题

  (啊呀呀,我物理最烂了  不过幸好自由落体还是会的  huaji)

#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
const double precision=1e-6;
int n, p, q;
double h, s, v, l, k, x, y, z = 1e-5;

int main() {
    scanf("%lf%lf%lf%lf%lf%d", &h, &s, &v, &l, &k, &n);
    x = s - sqrt(h/5) * v - z;
    p = (int)x;
    if(x-p > precision) p++;
    y = h - k - sqrt(z);
    y = max(0.0, y);
    y = s + l - sqrt(y/5) * v + z;
    q = (int)y;
    p = max(0, p);
    q = min(n-1, q);
    int tmp = max(0, q-p+1);
    printf("%d
", tmp);
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/v-vip/p/9345734.html