【题解】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;
}

后记

水题速切

完结撒花!

posted @ 2025-01-01 14:51  sunxuhetai  阅读(7)  评论(0)    收藏  举报