HDU_5144(物理+三分)
阿新 • • 發佈:2017-08-06
mes blog 根據 角度 pre posit %d spa atom
Description
給出扔球的高度,和初速度,求球最遠可以被扔出多遠?
Sample Input
2
0 1
1 2
Sample Output
0.10 0.99
根據扔的角度不同,球飛出的角度也不同,先推導公式,然後三分角度求出極值。
#include<bits/stdc++.h> using namespace std; const double u=3.14159265358979; const double esp=1e-8; double v,h,g=9.8; double f(double x){ return v*cos((x/180.0)*u)*(v*sin((x/180.0)*u)/g+sqrt((2.0*h*g+v*sin((x/180.0)*u)*v*sin((x/180.0)*u))/(g*g))); } int main(){ int n; double x,L,R,mid,maxn,midd; while(scanf("%d",&n)==1){ for(int i=0;i<n;i++){ L = 0;R = 90; mid = midd = maxn = 0; scanf("%lf %lf",&h,&v); while(R-L>esp){ mid=L+(R-L)/2; midd=mid+(R-mid)/2; if(f(mid)<f(midd)) L=mid+esp; else R=midd-esp; } printf("%.2lf\n",f(L)); } } return 0; }
HDU_5144(物理+三分)