zoukankan      html  css  js  c++  java
  • 【三分法】hdu2438 Turn the corner

    Problem Description
    Mr. West bought a new car! So he is travelling around the city.

    One day he comes to a vertical corner. The street he is currently in has a width x, the street he wants to turn to has a width y. The car has a length l and a width d.

    Can Mr. West go across the corner?
     
    Input
    Every line has four real numbers, x, y, l and w.
    Proceed to the end of file.
     
    Output
    If he can go across the corner, print "yes". Print "no" otherwise.
     
    Sample Input
    10 6 13.5 4 10 6 14.5 4
     
    Sample Output
    yes
    no
     
    题目大意:
     
    给出街道在x轴的宽度X,y轴的宽度Y,还有车的长l和宽w,判断是否能够转弯成功。
     
    题解:
     
    如图:
    可以很容易地观察到上面这样一条不等式:
    而这个不等式可以很容易地观察出三分性质。
    所以求解就很easy了。
     
    代码如下:
     
    #include<cstdio>
    #include<cmath>
    #include<iostream>
    #define PI 3.14159
    using namespace std;
    
    double x,y,l,d;
    
    double pd(double a)
    {
        return sin(a)*l+d/cos(a)-y*tan(a);
    }
    
    int main()
    {
        while(scanf("%lf%lf%lf%lf",&x,&y,&l,&d)!=EOF)
        {
            double lm,rm,le=0.0,r=PI/2;
            while(fabs(r-le)>1e-6)
            {
                lm=(le*2.0+r)/3.0;
                rm=(le+r*2.0)/3.0;
                if(pd(lm)>pd(rm)) r=rm;
                else le=lm;
            }
            if(pd(le)<=y)
                printf("yes
    ");
            else
                printf("no
    ");
        }
    }
  • 相关阅读:
    Java内置包装类
    for循环思路题
    常用函数
    函数
    冒泡排序
    数组的运用
    for循环中有意思的练习题。
    for循环
    运算中容易出现的错误
    分支的运用
  • 原文地址:https://www.cnblogs.com/rir1715/p/6816027.html
Copyright © 2011-2022 走看看