HDU - 2438 Turn the corner(三分)
题目链接:点击查看
题目大意:直接上图:
给出四个参数: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(三分)相关推荐
- hdu 2438 Turn the corner [ 三分 ]
传送门 Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu Turn the corner
这题是道三分的题,首先要分析满足条件的情况,这个就是平面几何的功夫了.要想车子能够转弯成功,最上面那个点到水平线的距离要小于等于y.这里h和s的公式就是利用平面几何的知识求出来的:s=l*cos(a) ...
- HDU 4869 Turn the pokers(思维+组合公式+高速幂)
Turn the pokers 大意:给出n次操作,给出m个扑克.然后给出n个操作的个数a[i],每一个a[i]代表能够翻的扑克的个数,求最后可能出现的扑克的组合情况. Hint Sample Inp ...
- HDU 4869 Turn the pokers(思维+组合公式+快速幂)
Turn the pokers 大意:给出n次操作,给出m个扑克,然后给出n个操作的个数a[i],每个a[i]代表可以翻的扑克的个数,求最后可能出现的扑克的组合情况. Hint Sample Inpu ...
- 三分法与二分法的区别和三分法总结
三分法介绍 在区间内用两个mid将区间分成三份,这样的查找算法称为三分查找,也就是三分法,三分法常用于求解单峰函数的最值. 还有一种理解,即在二分查找的基础上,在左区间或者右区间上再 ...
- 【专题】三分法和牛顿迭代法总结
下面总结两种迭代方法:三分法和牛顿迭代 1.三分法 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值.但当函数是凸性函数时,二分法就无法适用,这时三分法就可以大显身手. 如下凸函数: 类 ...
- 考研英语二真题文章重点单词
2019 #完形填空 stay aware of 保持--的意识:随时留意-- fluctuation n. 起伏,波动 as for 至于,关于 shift from 从--转移 generally ...
- 坚持不懈,直到成功-I will persist. I will win.
I will persist until I succeed. 坚持不懈.直到成功. In the Orient young bulls are tested for the fight arena ...
- cadence SPB17.4 capture and cis 全部错误消息列表
前言 在整理层次原理图,中间遇到好多编译警告和错误. 刚将封装之外的错误和警告都消掉了. 再想,官方对于错误消息有没有一个汇总和解释呢? 在本地帮助文件中找到了, capture的所有错误消息说明文件 ...
最新文章
- 模糊匹配 读音_onenote搜索机制详解②:两种搜索模式,模糊与精确匹配
- 第十周项目3-血型统计
- UVA 11210 中国麻将
- 115配额怎么增加_笔电、平板接口少怎么办,ORICO八合一多功能扩展坞助你一臂之力...
- java铃声类_java多线程抓取铃声多多官网的铃声数据
- c语言图案问题,C语言绘图问题
- 用Android Studio 出现的问题
- 大型网站架构系列:负载均衡详解
- Mac系统Cornerstone安装和使用说明(最佳的SVN管理工具)
- 使用iptables-persistent永久保存iptables规则
- HTML打开QQ对话窗口
- vcs+verdi/Debussy
- 设计师都爱用的UI标注软件有哪些?
- MySQL主外键设置
- 计算机组装部zho,PowerPC汇编实现BES Ⅲ数据获取读出系统机箱级数据组装
- Linux之root密码破解
- 三羊献瑞-第六届蓝桥杯省赛
- linux添加cfg,Linux安装详解-配置ks.cfg实现自动安装过程
- 学校计算机室工作人员岗位职责,学校信息中心岗位职责说明.doc
- 骑士ME3616模块二次开发