hdu 2298 二分+三分
2015-12-10 21:43
681 查看
对于这种 先递增后递减的情况,采用三分找到最大值点,再二分求解
三分模板见代码
三分模板见代码
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define MS(x,y) memset(x,y,sizeof(x)) #define pi acos(-1.0) using namespace std; void fre(){freopen("t.txt","r",stdin);} typedef long long LL; typedef unsigned long long ULL; const int maxn = 1000005; const int inf = (1<<63)-1; const double eps = 1e-8; double x,y,v; double calc(double n) { return x*tan(n) - 0.5*9.8*x*x/v/v/cos(n)/cos(n); } double three_div(double l,double r) { double m1,m2; while(r - l > eps) { m1 = l + (r-l)/3; m2 = r - (r-l)/3; if(calc(m1) < calc(m2)) l = m1; else r = m2; } return (l+r)/2; } double two_div(double x,double l,double r) { double m; while(r - l > eps) { m = (l+r)/2; if(calc(m) < x) l = m; else r = m; } return (l+r)/2; } int main() { // fre(); int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf",&x,&y,&v); double maxx = three_div(0,pi/2); if(calc(maxx) < y) {printf("-1\n");continue;} else printf("%.6lf\n",two_div(y,0,maxx)); } return 0; }
相关文章推荐
- 基本模式匹配算法缘起解读
- web.xml中的url-pattern映射规则
- bzoj:1723: [Usaco2009 Feb]The Leprechaun 寻宝
- 事件响应
- hdu1016(素数环剪枝dfs)
- 二叉树中和为某一值的路径
- FTP文件传输服务
- UIButtonn-SB
- LeetCode 014
- python+Eclipse+pydev环境搭建
- JavaScript 初识日记
- 关于安卓应用(APK文件)的二次打包
- centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squid配置 3128 DNSPOD 第二十七节课
- FTP文件传输服务
- Codeforces Round #335 (Div. 2) (A)模拟
- boost::shared_ptr相关
- Java虚拟机 堆和栈
- Android菜鸟实训的第一天
- android开发步步为营之87:从sdcard或者data文件夹下读写数据
- c++实训报告之高校工资管理系统