首页 > 代码库 > [NOIP2002]自由落体 T3

[NOIP2002]自由落体 T3

题目描述

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

  小车与所有小球同时开始运动,当小球距小车的距离  < =  0.00001  时,即认为小球被小车接受(小球落到地面后不能被接受)。

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

技术分享

输入

输人:

  H,S1,V,L,K,n  (l< =H,S1,V,L,K,n  < =100000)

输出

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

样例输入

5.0 9.0 5.0 2.5 1.8 5

样例输出

1
简单的模拟,只是需要一点点的物理知识...
比如.....
#include<cstdio>  
#include<cmath>  
#include<algorithm>  
using namespace std;   
double h,s,v,l,k,x,y;  
int n,p,q;  
int main()  
{
    scanf("%lf%lf%lf%lf%lf%d",&h,&s,&v,&l,&k,&n);
    x=s-sqrt(h/5)*v-0.00001;
    p=(int)x;  
    if(x-p>0.00001)
        p++;
    y=h-k-sqrt(0.00001);
    y=max(0.0,y);  
    y=s+l-sqrt(y/5)*v+0.00001;
    q=(int)y;  
    p=max(0,p);
    q=min(n-1,q);  
    printf("%d\n",max(0,q-p+1));
}

 

[NOIP2002]自由落体 T3