【题解】P1033 自由落体
题面
前言
建议降橙
正文
依题意,我们有 \(x = \frac{1}{2} gt^2\)
因为球只要 \(x\) 轴和车有重合且在那一瞬间的高度 \(h_0\) 满足 \(k \ge h_0 \ge 0\) 即可
显然我们对小车的 \(t_0\) 有要求,我们将上面的东东处理一下,得到 \(\sqrt{\frac{h}{5}} \ge {t_0} \ge \sqrt{\frac{h-k}{5}}\)
所以我们可以算出球的编号上下界……
但是不完全对——
比如说这个编号的界限算出来为 \([l,r]\)
但是出现了 \(l<0\) 或 \(r>n-1\) 的情况
所以要求一个 \([l,r]\) 与 \([1,n]\) 的交集
然后就无了~
代码
#include<iostream>
#include<cmath>
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_b=int(s1-t_min*v+l),i_e=int(s1-t_max*v);
i_b=min(i_b,n);
i_e=max(i_e,0);
cout<<i_b-i_e;
return 0;
}
后记
水题速切
完结撒花!