https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/G

【题意】

已知人的坐标在(0,0),靶的位置在(x,y),人以速度v射箭并且射中靶,求v与x的夹角。

【思路】

  • 经典的三分+二分题
  • 先三分求出纵坐标最大时的sita,如果这时的纵坐标都小于y,就输出-1
  • 三分确定sita后,在二分求出正解
  • 这道题我的代码eps=1e-9才能过

【Accepted】

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath> using namespace std;
const double pi=acos(-1.0);
double x,y,v,sita;
const double eps=1e-;
const double G=9.8;
double calc(double ang)
{
double t=x/(v*cos(ang));
return v*sin(ang)*t-0.5*G*t*t;
}
double triplediv()
{
double l=0.0;
double r=0.5*pi;
while(r-l>eps)
{
double mid1=(*l+r)/3.0;
double mid2=(l+*r)/3.0;
if(calc(mid1)<calc(mid2))
{
l=mid1+eps;
}
else
{
r=mid1-eps;
}
}
sita=l;
return calc(l);
} double doublediv()
{
double l=;double r=sita;
while(r-l>eps)
{
double mid=(l+r)/2.0;
if(calc(mid)<y)
{
l=mid+eps;
}
else
{
r=mid-eps;
}
}
return l;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%lf%lf%lf",&x,&y,&v);
if(triplediv()<y)
{
puts("-1");
}
else
{
double ans=doublediv();
printf("%.6f\n",ans);
}
}
return ;
}

【三分+精度问题】G. Toxophily的更多相关文章

  1. Toxophily-数论以及二分三分

    G - Toxophily Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi ...

  2. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  3. Python字符串格式化

    一.使用格式化符来格式化字符串: Python支持的所有格式化符 格式化符 意义 'd' 返回要格式化对象的十进制表示,如果可以 'i' 返回要格式化对象的十进制表示,如果可以 'o' 返回要格式化对 ...

  4. Format函数

    Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明: function Format(const Format ...

  5. [转]:Delphi中Format的字符串格式化使用说明

    一.Format函数的用法 Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明: function Forma ...

  6. Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  7. C# 格式化小总结

    C#中几个常用的格式化标识符 C或c Currency 货币格式 D或d Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了) E或e Exponent 指数格式 F ...

  8. Delphi中Format与FormatDateTime函数详解

    copy:http://hi.baidu.com/yunfanleo/blog/item/0c51d9cdbc0531550eb34558.html Format是一个很常用,却又似乎很烦的方法,本人 ...

  9. DATEADD和DATEDIFF函数、其他日期处理方法 、已打开的端口、FORMAT函数

    DATEADD和DATEDIFF函数.其他日期处理方法 .已打开的端口.FORMAT函数 DATEADD和DATEDIFF函数.其他日期处理方法 .已打开的端口.Format函数 KeyLife富翁笔 ...

随机推荐

  1. 【C#】.net 发送get/post请求

    基础学习 /// <summary> /// Http (GET/POST) /// </summary> /// <param name="url" ...

  2. 使用gitblit 在windows平台搭建git服务器

    1.下载jdk,安装并且配置好环境变量 2.下载gitblit 直接解压无需安装 3.配置gitblit 1.修改gitblit安装目录下的data文件下的gitblit.properties.将in ...

  3. JavaScript——数组的indexOf()方法在IE8中的兼容性问题

    昨天在工作中遇到一个问题:数组的indexOf()方法在IE8中无效. 如以下代码在IE8中报错“对象不支持“indexOf”属性或方法”: var arr = [1,2,3]; var index ...

  4. Firefox离线安装扩展教程

    Firefox离线安装扩展教程 解决问题博文:解决stackoverflow打开慢不能注册登录 应网友求助在上传了需要的扩展资源后,顺便写个离线安装方法,其实百度也行,这不写下来后为需求者省事.(*^ ...

  5. 谈谈对Android中的消息机制的理解

    Android中的消息机制主要由Handler.MessageQueue.Looper三个类组成,他们的主要作用是 Handler负责发送.处理Message MessageQueue负责维护Mess ...

  6. 读取Chrome书签文件

    使用C#读取Chrome浏览器的本地书签文件,当前文件在C盘下用户文件夹\AppData\Local\Google\Chrome\User Data\Default\下的Bookmarks 打开这个文 ...

  7. SQL Server2012 T-SQL对分页的增强尝试

    简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果.相比较SQL Server 2005/2008的ROW_Numbe ...

  8. SAP CRM调查问卷的评分和图表显示功能介绍

    SAP CRM里我们使用事务码CRM_SURVEY_SUITE创建一个调查问卷(Survey): 其中调查问卷的问题和答案均可分配权值(Rate),最后该问卷总的分数等于每个问题的权值乘以客户选择答案 ...

  9. 禁用DRM

    10G: alter system set "_gc_policy_time"=0 scope=spfile sid='*'; alter system set "_gc ...

  10. iview table 已选项的数据 this.$refs.tables.$refs.tablesMain.getSelection()

    iview table 已选项的数据 this.$refs.tables.$refs.tablesMain.getSelection() 由于我这里table组件是套了两层组件 所以是进入了两个层次拿 ...