首页 > 代码库 > hdu 5144 NPY and shot
hdu 5144 NPY and shot
http://acm.hdu.edu.cn/showproblem.php?pid=5144
题意:给你初始的高度和速度,然后让你求出水平的最远距离。
思路:三分枚举角度,然后根据公式求出水平距离。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 const double pi=acos(-1.0); 7 const double eps=1e-6; 8 const double g=9.8; 9 10 int t;11 double h,v;12 double ok(double x)13 {14 double xx=((double)(x/180))*pi;15 double t1=v*sin(xx)/g;16 double y=v*t1*sin(xx)-0.5*g*t1*t1;17 double yy=y+h;18 double t2=sqrt(yy*2/g);19 double s=v*cos(xx)*(t1+t2);20 return s;21 }22 23 int main()24 {25 scanf("%d",&t);26 while(t--)27 {28 scanf("%lf%lf",&h,&v);29 double l=0,r=90;30 double c;31 while(r-l>eps)32 {33 double mid1=(r+l)/2;34 double mid2=(l+mid1)/2;35 if(ok(mid1)>=ok(mid2))36 {37 c=mid1;38 l=mid2;39 }40 else41 r=mid1;42 }43 printf("%.2lf\n",ok(c));44 }45 return 0;46 }
hdu 5144 NPY and shot
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。