P1033 自由落体 (数论)
题意:物理题0-n-1 n个位置的小球自由落体,一长l高k的小车从s1开始以速度v匀速运动,求小车最多接住多少个小球
思路:找到最早和最晚接到的小球编号,相减+1即可。注意本题卡精度算出i_l和i_r分别要减1e4 和加1e-4。还要i_l都到不了最左端的情况。
#include<bits/stdc++.h>
using namespace std;
int n;
double h,s1,v,l,k;
int main()
{
cin>>h>>s1>>v>>l>>k>>n;
double t_max=sqrt(h/5);
double t_min=sqrt((h-k)/5);
int i_r=int(s1-t_min*v+l+1e-4),i_l=(int)ceil(s1-t_max*v-1e-4);
i_r=min(i_r,n-1);i_l=max(i_l,0);
if(i_l>n-1) puts("0");
else cout<<i_r-i_l+1;
}