HDU 2298 Toxophily
来源:互联网 发布:ori什么软件 编辑:程序博客网 时间:2024/05/01 00:29
题目链接~~>
做题感悟:这题值得注意的一点是 cos(x)中的 x 必须是弧度,发现数学和物理全忘了。
解题思路:
设苹果的位置为【px,py】左图是枚举了0-90区间内角度发射时其轨迹在px点上的y值,最大y值对应一个角度K,右图的x轴是0-90,y轴是对应角度时其轨迹在px点上的y值。由左图的可知0-90区间内角度发射时其轨迹在px点上的值y是 呈现右图的凸性函数。从而射到苹果的值有两个,分别为如右图的两个叉点,而题目要求的min点即为左边那个打叉的点。
X = V*cos(a)*t ;
Y = V*sin(a)*t - 1/2*g*t*t ;
消去 t 可得 Y=X * sin( a ) / cos( a ) - X * X * g / ( 2.0 * V * V * cos( a ) * cos( a ) .
物理知识(抛物线): 水平方向 x = v * t . 竖着方向 v = g * t . y = 1/2* g * t ^ 2 . y = v * t - 1/2 * g * t ^2 . V1^2 - V^2 = 2*g*h (V1为末速度,V2为初速度).
代码:
#include<stdio.h>#include<iostream>#include<map>#include<string>#include<string.h>#include<stdlib.h>#include<math.h>#include<queue>#include<algorithm>using namespace std ;const double eps = 0.00000001 ;const double PI = 3.1415926 ;const double g = 9.8 ;double rx,ry,v,y ;double find(double a) // a为弧度{ return rx*sin(a)/cos(a)-rx*rx*g/(2.0*v*v*cos(a)*cos(a)) ;}double third_search(double le,double rt)// 三分找最大值{ double mid,midd,y1,y2 ; while(rt-le>=eps) { mid=(le+rt)/2.0 ; midd=(mid+rt)/2.0 ; y1=find(mid) ; y2=find(midd) ; if(y1 < y2) le=mid ; else rt=midd ; } y=(y1+y2)/2.0 ; return (le+rt)/2.0 ;}double binary_search(double le,double rt)// 二分找最优解{ double mid ; while(rt-le>=eps) { mid=(le+rt)/2.0 ; if(find(mid)<ry) le=mid ; else rt=mid ; } return mid ;}int main(){ int T ; scanf("%d",&T) ; while(T--) { scanf("%lf%lf%lf",&rx,&ry,&v) ; double angle=third_search(0,PI/2.0) ; if(ry>y) // 如果最大 y 值小于已知 ry 则无解。 { printf("-1\n") ; continue ; } printf("%.6lf\n",binary_search(0,angle)) ; } return 0 ;}
0 0
- HDU 2298 Toxophily
- hdu 2298 Toxophily
- HDU 2298 Toxophily
- HDU 2298 Toxophily
- hdu 2298 Toxophily (物理题)
- HDU 2298 Toxophily
- hdu 2298 - Toxophily [二分]
- HDU 2298 Toxophily
- HDU 2298 Toxophily
- day5 HDU 2298 Toxophily
- HDU 2298 Toxophily
- HDU 2298 Toxophily(水~)
- HDU 2298 Toxophily(公式推导)
- Toxophily HDU
- hdu 2298 Toxophily 公式 或者 三分+二分。
- HDU 2298 Toxophily(公式/三分+二分)
- HDU 2298 Toxophily 二分 推公式
- HDU 2298 Toxophily(三分+二分)
- 一些关于阶乘的设想(由Sn=1!+2!+3!+...+n!)想到的
- 幽默风趣的 电子工程 专辑文章
- IOS面试题--002
- Steve Yegge:Google面试秘籍
- HTML5画布画保存为一个图像
- HDU 2298 Toxophily
- javaSE-面向对象-Object
- 《C++ Primer第五版》读书笔记(9)--ASSOCIATIVE CONTAINERS
- 路由事件
- TOP-查看CPU使用率,系统资源使用
- SpringMVC源码剖析(二)- DispatcherServlet的前世今生
- 扫雷游戏的实现C++
- mysql 错误积累
- 字符串倒序输出