CSU-ACM2017暑期训练5-三分 D
来源:互联网 发布:单片机什么是硬件,软件 编辑:程序博客网 时间:2024/05/16 19:51
题目:
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.
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.
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.
Sample Input Sample Output 1.561582 -1 -1
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.
Technical Specification
1. T ≤ 100.
2. 0 ≤ x, y, v ≤ 10000.
Output "-1", if there's no possible answer.
Please use radian as unit.
30.222018 23.901887 121.90918339.096669 110.210922 20.270030138.355025 2028.716904 25.079551
题意:一个果子在平面坐标的(x,y)处,你人在(0,0)处丢出一个速度为v的石子,问:使得石子能扔到果子的扔石子最小角度为多少(初速度与x轴的夹角)
思路:高中物理推出公式:y = v*sinθ*t -1/2*g*t*t,t = x / v*cosθ. 根据此公式三分求得可以达到果子的高度及以上高度的最大角度,然后在二分求得满足要求的最小角度
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>using namespace std;typedef long long ll;const double PI = acos(-1.0);const double eps = 1e-6;const int INF = 1000000000;const int maxn = 100;int T;double x,y,v;double l,r;/* y = v*sinθ*t - 1/2*g*t*t,t = x / v*cosθ。*/double cal(double th)//th为的弧度{ double t=x/(v*cos(th)); return v*sin(th)*t-4.9*t*t;}int main(){ scanf("%d",&T);while(T--) { scanf("%lf%lf%lf",&x,&y,&v); l=0,r=PI/2; if(x==0) { if(v*v/19.6>=y)//v^2=2gy printf("%.6f",PI/2); else printf("-1\n"); continue; } for(int i=0;i<=100;i++) { double mid,midmid; mid=(l+r)/2.0; midmid=(mid+r)/2.0; if(cal(mid)>cal(midmid)) r=midmid; else l=mid; } if(cal(r)<y) { printf("-1\n"); continue; } l=0; for(int i=0;i<=100;i++) { double mid=(l+r)/2.0; if(cal(mid)>y) r=mid; else l=mid; } printf("%.6f\n",r); } return 0;}
阅读全文
0 0
- CSU-ACM2017暑期训练5-三分 D
- CSU-ACM2017暑期训练5-三分 E
- CSU-ACM2017暑期训练5-三分 A
- CSU-ACM2017暑期训练5-三分 E
- CSU-ACM2017暑期训练4-dfs D
- CSU-ACM2017暑期训练12-KMP D
- CSU-ACM2017暑期训练8-动态规划初步 D
- CSU-ACM2017暑期训练14-最短路 D
- CSU-ACM2017暑期训练16-树状数组 D
- CSU-ACM2017暑期训练3 J
- CSU-ACM2017暑期训练4-dfs E
- CSU-ACM2017暑期训练4-dfs F
- CSU-ACM2017暑期训练4-dfs G
- CSU-ACM2017暑期训练6-bfs C
- CSU-ACM2017暑期训练6-bfs I
- CSU-ACM2017暑期训练6-bfs H
- CSU-ACM2017暑期训练6-bfs G
- CSU-ACM2017暑期训练6-bfsH
- VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”
- JavaScript之表单脚本
- 每日MySQL之006:MySQL中的binary log
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--简介+代码+资源
- java研发网页数据采集
- CSU-ACM2017暑期训练5-三分 D
- eclipse 优化 经常未响应解决办法
- linux deepin解决freemind中文乱码和crossover的netframwork的问题 xmind
- 9、提取不重复的整数
- LeetCode(32)--Longest Valid Parentheses
- 嵌入式每日学习心得2017.08.01
- HTTP请求报文和HTTP响应报文
- Android开发艺术探索(Activity)
- Lake Counting (DFS )