栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

题166.hdu2438 三分-Turn the corner

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

题166.hdu2438 三分-Turn the corner

文章目录
  • 题166.hdu2438 三分-Turn the corner
  • 一、题目
  • 二、题解


题166.hdu2438 三分-Turn the corner
一、题目

二、题解

依题意知,尽可能让车贴着外面的墙璧转弯,即图中的x轴和y轴,此时只要保证图中直线与y=X交点横坐标在(-Y,0)那么转弯成功。
即对任意的θ∈(0,90°),联立y=x与直线方程得到的x=(X-(l*sin(θ)+w/cos(θ)))/tan(θ)>-Y恒成立。分析知,x为单峰函数,所以用三分法去求出x最小值,如果这个最小值能够大于-Y则转弯成功,反之就转弯失败。

#include 

using namespace std;

const double eps=1e-6;
const double pi=acos(-1.0);//用cosΠ=-1,借反三角函数acos得到Π
double x,y,l,w;

double cal(double angle)//计算x
{
    double res=(x-(l*sin(angle)+w/cos(angle)))/tan(angle);
    return res;
}

int main()
{
    while(cin>>x>>y>>l>>w)
    {
        double l=0,r=pi/2,mid1,mid2;//控制枚举区间为图中那个θ角,范围具体控制在0到90°
        while(l+eps 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630438.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号