首页 > 代码库 > [hdu2298] 物理推导+二分答案
[hdu2298] 物理推导+二分答案
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2298
#include<bits/stdc++.h> using namespace std; const double pi=acos(-1.0); const double g=9.8; const double eps=1e-9; int main() { int t; scanf("%d",&t); while (t--) { double x,y,v; scanf("%lf%lf%lf",&x,&y,&v); double tant=v*v/g/x; double theta=atan(tant); double sint=sin(theta); double cost=cos(theta); double ymax=x*tant-g*x*x/2.0/v/v/cost/cost; if (ymax<y) printf("-1\n"); else { double l=0,r=theta; while (r-l>eps) { double mid=(l+r)/2.0; double tanm=tan(mid); double cosm=cos(mid); double ym=x*tanm-g*x*x/2.0/v/v/cosm/cosm; if (ym>=y) r=mid; else l=mid; } printf("%.6f\n",l); } } return 0; }
[hdu2298] 物理推导+二分答案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。