题目链接:点击查看

题目大意:直接上图:

给出四个参数:x,y,l,d,分别如图所示,问汽车能否拐弯成功

题目分析:在这里借个图:

让车辆能转过去的最优解肯定是左侧贴着直角点,右侧后端的顶点与右墙接触,如图所示

那么我们以直角点为原点O建立平面直角坐标系,设拐弯角度为α,则我们需要判断P点在拐弯途中的最大值与墙体宽度y的大小关系,就可以判断车辆是否能够拐过去了

现在我们需要根据任意的α计算出点P的横坐标,可以根据三角函数轻松推出如下公式:

然后三分找最大值即可,范围是从0到PI/2

这个题目有个小细节要注意一下,不知道为什么用二分+二分的写法会WA,必须将[l,r]严格分成三份才能A

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
#define Pi acos(-1.0)
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;const double eps=1e-6;double x,y,l,w;double fun(double a)
{return l*cos(a)-(x-w/cos(a))/tan(a);
}int main()
{
//  freopen("input.txt","r",stdin);while(scanf("%lf%lf%lf%lf",&x,&y,&l,&w)!=EOF){double l=0,r=Pi*0.5;while(fabs(r-l)>eps){
//          double mid=(l+r)/2;
//          double mmid=(mid+r)/2;double mid=l+(r-l)/3;//这个题目必须这样写,上面注释掉的写法会WAdouble mmid=r-(r-l)/3;if(fun(mid)<fun(mmid))l=mid;elser=mmid;}if(fun(l)<=y)printf("yes\n");elseprintf("no\n");}return 0;
}

HDU - 2438 Turn the corner(三分)相关推荐

  1. hdu 2438 Turn the corner [ 三分 ]

    传送门 Turn the corner Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. hdu Turn the corner

    这题是道三分的题,首先要分析满足条件的情况,这个就是平面几何的功夫了.要想车子能够转弯成功,最上面那个点到水平线的距离要小于等于y.这里h和s的公式就是利用平面几何的知识求出来的:s=l*cos(a) ...

  3. HDU 4869 Turn the pokers(思维+组合公式+高速幂)

    Turn the pokers 大意:给出n次操作,给出m个扑克.然后给出n个操作的个数a[i],每一个a[i]代表能够翻的扑克的个数,求最后可能出现的扑克的组合情况. Hint Sample Inp ...

  4. HDU 4869 Turn the pokers(思维+组合公式+快速幂)

    Turn the pokers 大意:给出n次操作,给出m个扑克,然后给出n个操作的个数a[i],每个a[i]代表可以翻的扑克的个数,求最后可能出现的扑克的组合情况. Hint Sample Inpu ...

  5. 三分法与二分法的区别和三分法总结

    三分法介绍 在区间内用两个mid将区间分成三份,这样的查找算法称为三分查找,也就是三分法,三分法常用于求解单峰函数的最值.          还有一种理解,即在二分查找的基础上,在左区间或者右区间上再 ...

  6. 【专题】三分法和牛顿迭代法总结

    下面总结两种迭代方法:三分法和牛顿迭代 1.三分法 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值.但当函数是凸性函数时,二分法就无法适用,这时三分法就可以大显身手. 如下凸函数: 类 ...

  7. 考研英语二真题文章重点单词

    2019 #完形填空 stay aware of 保持--的意识:随时留意-- fluctuation n. 起伏,波动 as for 至于,关于 shift from 从--转移 generally ...

  8. 坚持不懈,直到成功-I will persist. I will win.

    I will persist until I succeed. 坚持不懈.直到成功. In the Orient young bulls are tested for the fight arena ...

  9. cadence SPB17.4 capture and cis 全部错误消息列表

    前言 在整理层次原理图,中间遇到好多编译警告和错误. 刚将封装之外的错误和警告都消掉了. 再想,官方对于错误消息有没有一个汇总和解释呢? 在本地帮助文件中找到了, capture的所有错误消息说明文件 ...

最新文章

  1. 模糊匹配 读音_onenote搜索机制详解②:两种搜索模式,模糊与精确匹配
  2. 第十周项目3-血型统计
  3. UVA 11210 中国麻将
  4. 115配额怎么增加_笔电、平板接口少怎么办,ORICO八合一多功能扩展坞助你一臂之力...
  5. java铃声类_java多线程抓取铃声多多官网的铃声数据
  6. c语言图案问题,C语言绘图问题
  7. 用Android Studio 出现的问题
  8. 大型网站架构系列:负载均衡详解
  9. Mac系统Cornerstone安装和使用说明(最佳的SVN管理工具)
  10. 使用iptables-persistent永久保存iptables规则
  11. HTML打开QQ对话窗口
  12. vcs+verdi/Debussy
  13. 设计师都爱用的UI标注软件有哪些?
  14. MySQL主外键设置
  15. 计算机组装部zho,PowerPC汇编实现BES Ⅲ数据获取读出系统机箱级数据组装
  16. Linux之root密码破解
  17. 三羊献瑞-第六届蓝桥杯省赛
  18. linux添加cfg,Linux安装详解-配置ks.cfg实现自动安装过程
  19. 学校计算机室工作人员岗位职责,学校信息中心岗位职责说明.doc
  20. 骑士ME3616模块二次开发

热门文章

  1. 集中式整合之编写springsecurity配置类
  2. 什么是HystrixDashbord/如何使用?
  3. Zookeeper基于Java访问-授权对象
  4. collection 和association 的区别?
  5. Spring 中的编程思想总结
  6. 对称加密-DES解密
  7. 编码引出的问题_FileReader读取GBK格式的文件
  8. XMLIOC案例-编写spring的Ioc配置
  9. mysql的length函数和char_length中文字符长度计算函数
  10. jmu-python-重复元素判定_Python入门 —— 用pycharm写一个简单的小程序2