申請SAE

如果您發現本博客的外觀很難看,那是因為部分外觀文件被中國.國家.防火.牆屏.蔽所致!
請翻~牆!

我的Wordpress博客的地址: http://zhuyf.tk/

2011年10月25日 星期二

NOIP2002提高組複賽 自由落體 freefaller

            NOIP2002提高組複賽 自由落體 freefaller
[問題描述]
  在高爲 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 <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double h,s,v,l,k,n;
int answer=0;
int main()
{
    freopen ("freefaller.in","r",stdin);
    freopen ("freefaller.out","w",stdout);
    cin>>h>>s>>v>>l>>k>>n;
    double t,y,y2;
    t=sqrt(0.2*(h-k));
    y=s-v*t;
    y2=y+l;
    t=sqrt(0.2*(h));
    y=s-v*t;
    for (int i=0;i<n;i++)
    {
        if (i>=y-0.00001&&i<=y2+0.00001)
        {
            answer++;
        }
    }
    printf("%d",answer);
    return 0;
}

沒有留言:

張貼留言