Toxophily(hdu2298三分+二分)
题意:从(0,0)开始,射中目标(x,y),g=9.8N,问射中的最小角度.
思路:因为角度[0,PI/2], cos(a),[0,PI/2]是单调函数,可以二分逼近出一个结果,判断他能否射中,找到能射中的最大高度,然后和y比较,小于y就是射不中,否则就二分逼近结果
x,y表示水平方向,竖直方向的位移.t表示时间.
x = v * cos(a) * t;
y = v * sin(a) * t;
合并方程 y = x*tan(a)-x*x*g/(2*v*v*cos(a)*cos(a));
x,v知道,相当于这是一个关于y,a的非线性方程,首先要找到一个a是的y取最大值,三分得到一个角度b使得y最大, 然后b带入原方程,得到y1,比较y与y1,得到他能否射中
b为取最大值的角度,所以二分逼近范围[0,b]不用到PI/2了
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const double PI=acos(-1.0);
const double eps = 1e-9;
const double g = 9.8;
double x,y,v;
double f(double a)
{return x*tan(a)-x*x*g/(2*v*v*cos(a)*cos(a));
}
double sanfen(double a)
{double left = 0,right = a,mid,midmid;while(right - left > eps){mid = (left + right) / 2;midmid = (mid + right) / 2;if(f(mid) > f(midmid)){right = midmid;}else{left = mid;}}return (mid+midmid)/2;
}double erfen(double a)
{double left = 0,right = a,mid;while(right - left > eps){mid = (left + right) / 2;if(f(mid) < y){left = mid;}else{right = mid;}}return mid;
}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%lf%lf%lf",&x,&y,&v);double sum = sanfen(PI/2);if(f(sum) < y)printf("-1\n");elseprintf("%.6lf\n",erfen(sum));}return 0;
}
Toxophily(hdu2298三分+二分)相关推荐
- 1095. 山脉数组中查找目标值(三分+二分)
(这是一个 交互式问题 ) 给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值. 如果不存在这 ...
- HDU 2298 Toxophily 【三分算法 or 直接推导物理公式】
http://acm.hdu.edu.cn/showproblem.php?pid=2298 题目大意:Bob在(0,0)点想射在(x, y)点的水果,初始的速度为v(已知), g=9.8, 求最小的 ...
- 【hdu2298】Toxophily——三分+二分
题目: Toxophily Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- CF 8D Two Friends (三分+二分)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题意 :有三个点,p0,p1,p2.有两个人ali ...
- Gym - 100889H Hitting Points 计算几何+三分+二分
题目链接 Hitting Points 题意 按逆时针顺序给你二维平面上严格凸包的n个点,编号0到n-1, 有q次询问, 每次询问确定一个编号为idx的基础点, 以idx和(idx+1)%n构成的向量 ...
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]
数学 A - Raising Bacteria 分析:如果1 << k == x,那么放1个就可以了:否则还要加上差值的二进制的1的个数. /*********************** ...
- 二分法、三分法 --算法竞赛专题解析(1)
本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 2019.8 网购:京东 当当 作者签名书 如有建议, ...
- 力扣OJ(1401-1500)
目录 1414. 和为 K 的最少斐波那契数字数目 1419. 数青蛙 1420. 生成数组 1424. 对角线遍历 II 1426. 数元素 1427. 字符串的左右移 1428. 至少有一个 1 ...
- 2015小米校招【研发类】面试真题经验分享
1.一个map中存有类似如下的数据:key value"a" "afasfwaeqwfwa(b)eqwgewgrqgq""b" " ...
- 22年ICPC西安站记录
\quad 最后rank119铜. \quad 经过桂林被挨打经历后,西安站赛前佛系了许多,完全没有压力,桂林赛前辗转难眠,昨晚打完游戏后就睡着了2333.十点起床做完核酸后就冲去院楼了. \quad ...
最新文章
- 在Spring Framework中@Inject和@Autowired有什么区别? 在什么条件下使用哪一个?
- Django的静态文件的配置
- 深度解析企业级存储解决方案
- Caffe 网络结构可视化
- IBatis.Net学习笔记(四)--再谈查询
- python中对列表和循环使用的小练习
- html overflow 样式,css样式之overflow-x属性样式
- C语言之反序数组和求最大值和最小值
- assertion: 18 { code: 18, ok: 0.0, errmsg: auth fails }
- php增加md5加密的方法_php进行md5加密简单实例方法
- uc影音java_uc影,
- Python实现电子词典
- UltraEdit 26 总是偶尔提示运行的是试用模式
- 如何制定人生目标和实现目标
- Mac 没有声音怎么恢复
- linux如何使用磁盘阵列卡,Ubuntu 上创建常用磁盘阵列
- 电磁场与电磁波公式总结
- c# MD5加密
- 计算机专业可以买台式机吗,现在还有必要买台式电脑吗?
- PCIe系列第四讲、TLP的路由方式