2002年全国青少年信息学(计算机)
奥林匹克分区联赛复赛提高组试题解题报告(三)
   

题三 自由落体(存盘名:NOIPG3)

[问题描述]:

  在高为 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

分析:

  显然,小车太慢(即V<=Vmin)或太快(V>Vmax)时,一个球也接不到。即在V<=Vmin或V>Vmax时输出为0。下面分别求Vmin和Vmax。当第n-1个小球落地的瞬间,小车在小球的右端离小球尚有e=0.00001的距离,小车的这个极小速度就是Vmin。小车从天花板落到地面的时间t1=,这段时间内小车走了S1-(n-1)-e,所以Vmin= 。当第1个小球落到距小车的上表面为e的瞬间,小车在小球的左端离小球距离为e,小车的这个极大速度就是Vmax。小球从天花板落到离小车上表面为e的距离的时间为t2= ,小车移动的距离为S1+L+e,所以Vmax=

  那么,当Vmin<V<=Vmax时,就可接到球了。显然,时间段[t2,t1]是小车接球的时间,在t2时刻,小车的位置为:左表面离原点距离为S1-V*t2,右表面离原点距离为S1-V*t2+L;在t1时刻,小车的位置为:左表面离原点距离为S1-V*t1,右表面离原点距离为S1-V*t1+L;故小车的接球范围(在小车运动范围外扩展e)为[S1-V*t1-e,S1-V*t2+L+e],球的个数就等于接球范围内所包含的0~n-1之间的整数的个数.

程序清单

program NOIPG3;
 const g=10{重力加速度};e=1E-5;{小车接受小球的极限距离}
 var H,s1,v,l,k,t1,t2,Vmin,Vmax:real;
   n2,n1,num,n:integer;
 begin
  readln(h,s1,v,l,k,n);num:=-1;
  t1:=sqrt(2*h/g);{小球落地时间}
  if h<=k+e then t2:=0 else t2:=sqrt(2*(h-k-e)/g);{小球落到小车上的最短时间}
  if s1-v*t2+L+e<0
   then num:=0
   else n2:=trunc(s1-v*t2+L+e);{小车接受的球的最大编号为n2}
  if n2>n-1 then n2:=n-1;{n2取trunc(s1-v*t2+L+e)与n-1的较小值}
  if s1-v*t1-e<=0
   then n1:=0
   else if s1-v*t1-e>n-1
       then num:=0
       else if (s1-v*t1-e)=trunc(s1-v*t1-e)
          then n1:=trunc(s1-v*t1-e){小车接受的球的最小编号为n1}
          else n1:=trunc(s1-v*t1-e)+1;
  if num=-1 then num:=n2-n1+1;{小车接受的球的个数为num}
  writeln(num);
 end.

点评:

  送分题 本题"物理味"有余而"信息味"不足,连循环语句都用不上!难见的"送分题",可物理较差的人也得不到多少分哦!


相关链接:
提高组试题解题报告(一)
      提高组试题解题报告(二)
      提高组试题解题报告(三)
      提高组试题解题报告(四)
      测试数据下载

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有