「HDU 2298」Toxophily

题意:原题在这

假设LCY站在(0,0)点,现给定平面直角坐标系内ZJ坐标,求ZJ与LCY的连线与X轴连线的角度
取g=9.8m/s²

思路:

感谢Beef的运动学分析及奇怪的口音让我差点打不出来“θ”

首先∵速度是斜方向的,所以Vx=V·cosθ,Vy=V·sinθ

又∵Sx=Vx·t,Sy=Vy·t

∴X=Vcosθ·t,Y=Vsinθ·t

到此为止理论分解完成了

------------------------------------------------------------------------------------------------

然鹅,题目中说考虑重力加速度g=9.8m/s²

所以Y=Vsinθ·t-(1/2)·gt²

代换t=X/Vcosθ得

最后得到二元一次方程:(g·X²)tan²θ-(2·V²·X)tanθ+(2·V²·Y+g·X²)=0

∴a=g·X²,b=-s2·V²·X,c=2·V²·Y+g·X²,Δ=b²-4ac

∴tanθ=(-b±√Δ)/2a

解完之后判断θ是否合法

代码:

#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;

#define pi acos(-1.0)//弧度制180°
#define g 9.8
#define maxx pi/2
#define minn 0

int T;
double x,y,v;//X,Y是ZJ坐标,V是LCY的移动速度

int main()
{
    cin>>T;
    for(int cas=1;cas<=T;cas++)
    {
        cin>>x>>y>>v;
        double a=g*x*x , b=-2*v*v*x , c=2*v*v*y+g*x*x , dlta=b*b-4*a*c;
        if(dlta<0) printf("%d\n",-1);
        else
        {
            double ans=atan( (-b-sqrt(dlta))/(2*a) );
            printf("%.6lf\n",ans);
        }
    }
    return 0;
}

朴素做法:

double a=g*x*x , b=-2*v*v*x , c=2*v*v*y+g*x*x , dlta=b*b-4*a*c;
double tan1=(-b+sqrt(dlta))/(2*a) , eta1=atan(tan1);
double tan2=(-b-sqrt(dlta))/(2*a) , eta2=atan(tan2);
if((eta1>=minn && eta1<=maxx) && (eta2>=minn && eta2<=maxx))
     printf("%.6lf\n",eta1<eta2?eta1:eta2);
 else if(eta1>=minn && eta1<=maxx)
     printf("%.6lf\n",eta1);
 else if(eta2>=minn && eta2<=maxx)
     printf("%.6lf\n",eta2);
 else
     printf("-1\n");

原文地址:https://www.cnblogs.com/LocaEtric/p/9275687.html

时间: 2024-10-09 12:06:37

「HDU 2298」Toxophily的相关文章

HDU 2298:Toxophily(推公式)

http://acm.hdu.edu.cn/showproblem.php?pid=2298 题意:给出一个x,y,v,问从(0,0)以v为初速度射箭,能否射到(x,y)这个点,如果能,输出最小的射出角度(与x轴),否则输出-1. 思路:首先考虑不能到达的情况,由动能定理mgy > 1 / 2 * m * v * v的时候,就输出-1. 然后可以列出两个式子: x = v * t * cos(θ)  ① y = v * t * sin(θ) - 1 / 2 * g * t * t. ② 把①带入

「hdu 4845 」拯救大兵瑞恩(状态压缩bfs | 分层图思想)

首先关于分层图思想详见2004的这个论文 https://wenku.baidu.com/view/dc57f205cc175527072208ad.html 这道题可以用状态压缩,我们对于每一把钥匙的状态只有两种,获得了或者没有获得,然后就可以用二进制方法表示,例如一共有5把钥匙,我们如果用二进制数01001表示当前状态,就意味着我们已经拥有了第一类钥匙,第四类钥匙(从右往左看),然后我们就可以把此时的状态压缩为一个int了,节省了很多的空间,具体的操作就用位运算实现. 然后就是简单粗暴的df

「HDU 5887」Herbs Gathering

题意:原题在这 给定背包容量和n个物品每个的价值和重量,求能装的物品的最大价值.(采药) 附一组自己出的数据,虽然不够刁钻但是查错够用: 5 100 101 200 99 1 1 2 98 20 2 50 思路: 做法1: 1. 因为dp解法的复杂度为O(V*N),w[i]和v[i]都在10e9,所以不能dp只能dfs 2. 一种按体积排序的做法: 按照体积由大到小排序,如果后面能取完的就直接取完; 如果后面一直选择最优策略(能获得的最大价值加上已有的)都不好于现在的答案则break; (参考:

怎样将「插件化」接入到项目之中?

本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态载入框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余添加.项目新功能的加入,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,仅仅能紧急公布补丁版本号,强制用户进行更新.结果频繁的更新.反而easy减少用户使用黏性,或者是公司业务的不断发展,同系的应用越来越多,传统方式须要通过用户量最大的主项目进行引导下载并安装.

「C语言」常量和变量的表示及应用

先发布,还在修改完善中.. 在程序运行中,其值不能改变的量成为常量.在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 整型常量 即整常数,由一个或多个数字组成,可以带正负号 C语言中整型常量可用十进制.八进制和十六进制3种形式表示 十进制整数:由0~9数字组成,不能以0开始,没有前缀 八进制整数:以0为前缀,其后由0~7的数字组成,没有小数部分 十六进制整数:以0x或0X开头,其后由0~9的数字和a~f(或A~F字母组成) 另外长

Chrome 扩展 Stylish :给不喜欢某个网站一键「换肤」

原文地址:http://whosmall.com/?post=419 本文标签: Chrome扩展 Chrome浏览器 Chrome插件 Chrome扩展Stylish Stylish是什么 Stylish 是什么? 开门见山,Stylish 的作用是,它可以把百度首页变成这样: 它还能把知乎「拍扁」,让微博网页版变得简洁无比,让 Feedly 用上Material Design-- 这个神奇的 Stylish实际上是一个浏览器插件,适用于 Chrome,Firefox,Opera 以及 Saf

3D高科技投影 麦可「复活登台」幕后

美国告示牌音乐颁奖典礼,日前在赌城盛大举行,主办单位利用高科技投影技术,让麦可杰克森「复活」登台表演,3D全像投影,加上影片与真人舞群无缝接轨,高科技让过世的大明星彷佛活了过来. 流行乐天王麦可杰克森死而复生,过世将近5年的他,又现身在今年美国告示牌音乐颁奖典礼上,金光闪闪现身舞台中央,麦可杰克森回来了,再现招牌的动感舞步,流露巨星风采,主办单位利用3D全像摄影技术,秘密制作了半年多,把他带回到世人眼前. 特效专家:「观众在告示牌典礼上看到的是,麦可的头部数字影像,连接到一名演员身上,我们实时捕

「Maven Tips」(一)自动更新jar包

maven中手动去更新jar包,是一件比较繁琐麻烦的事情,使用Range Dependency则可以省去这一步骤. 部分jar包可能会自动升级到beat版本! 官方说明文档:Dependency Version Ranges Range Meaning (,1.0] version ≤ 1.0 1.0 固定1.0版本 [1.0]   [1.2,1.3] 1.2 ≤ version ≤ 1.3 [1.0,2.0) 1.0 ≤ version ≤ 2.0 [1.5,) version ≥ 1.5 (

Linux 小知识翻译 - 「桌面环境」

这次聊聊桌面环境. 上次聊了 X Window System 相关的内容,虽然令人意外,但X Window System 和桌面环境不是一回事.请大家稍微考虑一下. X Window System 是指提供GUI环境的软件或者协议.与之相对,「桌面环境」是指工具栏,图标,窗口管理器,桌面管理器等等各式各样软件组合起来的GUI软件包. 换句话说,就是「使用桌面所必需的软件的集合」. 有名的桌面环境有「GNOME」和「KDE」.最近,很多Linux的发行版并不关心使用的桌面环境是「GNOME」还是「