HDU2298:Toxophily(三分 + 二分)
来源:互联网 发布:lighttpd python 编辑:程序博客网 时间:2024/05/16 07:31
Toxophily
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2068 Accepted Submission(s): 1147
Problem Description
The recreation center of WHU ACM Team has indoor billiards, Ping Pang, chess and bridge, toxophily, deluxe ballrooms KTV rooms, fishing, climbing, and so on.
We all like toxophily.
Bob is hooked on toxophily recently. Assume that Bob is at point (0,0) and he wants to shoot the fruits on a nearby tree. He can adjust the angle to fix the trajectory. Unfortunately, he always fails at that. Can you help him?
Now given the object's coordinates, please calculate the angle between the arrow and x-axis at Bob's point. Assume that g=9.8N/m.
We all like toxophily.
Bob is hooked on toxophily recently. Assume that Bob is at point (0,0) and he wants to shoot the fruits on a nearby tree. He can adjust the angle to fix the trajectory. Unfortunately, he always fails at that. Can you help him?
Now given the object's coordinates, please calculate the angle between the arrow and x-axis at Bob's point. Assume that g=9.8N/m.
Input
The input consists of several test cases. The first line of input consists of an integer T, indicating the number of test cases. Each test case is on a separated line, and it consists three floating point numbers: x, y, v. x and y indicate the coordinate of the fruit. v is the arrow's exit speed.
Technical Specification
1. T ≤ 100.
2. 0 ≤ x, y, v ≤ 10000.
Technical Specification
1. T ≤ 100.
2. 0 ≤ x, y, v ≤ 10000.
Output
For each test case, output the smallest answer rounded to six fractional digits on a separated line.
Output "-1", if there's no possible answer.
Please use radian as unit.
Output "-1", if there's no possible answer.
Please use radian as unit.
Sample Input
30.222018 23.901887 121.90918339.096669 110.210922 20.270030138.355025 2028.716904 25.079551
Sample Output
1.561582-1-1
Source
The 4th Baidu Cup final
题意:二维面上给定目标坐标和初速度,求在坐标原点(0,0),发射出去能经过目标点的最小的角度。思路:先用三分求出子弹经过横坐标x时所能达到的最大高度,再在此范围内二分出答案,目标在y轴上需要特判。设角度为θ,y = v*sinθ*t - 1/2*g*t*t,t = x / v*cosθ。
# include <iostream># include <cstdio># include <cmath># define pi acos(-1)using namespace std;double x, y, v;double fun(double a){ double t = x/(v*cos(a)); return v*sin(a)*t - 4.9*t*t;}int main(){ int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf",&x,&y,&v); double l=0, r=pi/2, mid, mmid; if(x == 0) { if(v*v/19.6 >= y) printf("%.6f\n",r); else puts("-1"); continue; } for(int i=0; i<100; ++i) { mid = (l+r)/2; mmid = (mid+r)/2; if(fun(mid)>fun(mmid)) r = mmid; else l = mid; } if(fun(l) < y) { puts("-1"); continue; } l = 0; for(int i=0; i<100; ++i) { mid = (l+r)/2; if(fun(mid)>y) r = mid; else l = mid; } printf("%.6f\n",r); } return 0;}
0 0
- HDU2298:Toxophily(三分 + 二分)
- hdu2298 Toxophily 三分+二分
- Toxophily(hdu2298三分+二分)
- 【hdu2298】Toxophily——三分+二分
- 【hdu2298】【三分】Toxophily
- hdu2298 三分+二分查找
- HDU 2298 Toxophily(三分+二分)
- hdu2298.Toxophily
- Toxophily-数论以及二分三分
- 推导公式 hdu2298 Toxophily
- hdu 2298 Toxophily 公式 或者 三分+二分。
- HDU 2298 Toxophily(公式/三分+二分)
- 暑期集训训练3练习题B - Toxophily(HDU2298)
- hdoj 2298 Toxophily(数学推导或三分+二分)
- 09-04 HDU_Steps4.1 二分三分 HDU2199 HDU2899 HDU1967 HDU2141 HDU2298 HDU1597 HDU2438 HDU3400
- hdu 2298 - Toxophily [二分]
- hdu2298-(二分或裸方程)
- HDU2298
- 获取当月第一天和最后一天
- 蓝牙BLE开发基础教程 android5.0 蓝牙4.0 透传 Android Studio(三)
- 浅析C++对象布局
- Eclipse 设置
- Android Studio 检测不到手机
- HDU2298:Toxophily(三分 + 二分)
- 链表的创建和插入
- Composer PHP 的一个依赖管理工具
- EL & JSTL
- 【Github】Github+Jekyll搭建个人博客
- HDU
- SSH包全解
- C++11 并发指南
- contentwindow & contentdocument