zoukankan      html  css  js  c++  java
  • 【CZY选讲·Yjq的棺材】

    题目描述

    Yjq想要将一个长为宽为的矩形棺材(棺材表面绝对光滑,所以棺材可以任意的滑动)拖过一个L型墓道。 如图所示,L型墓道两个走廊的宽度分别是和,呈90°,并且走廊的长度远大于。 现在Hja想知道对于给定的,,,最大的是多少,如果无论如何棺材都不可能通过,则输出"My poor head =(" 。

    数据范围 

    1≤,,≤10^4。

     

    题解:
          ①三分法求下凸函数极值。

          ③具体就是求靠外直角的那条斜边到内拐角点的距离,然后比较和宽的大小就可以说明能够通过了

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    using namespace std;
    int a,b,l;
    double get(double v1)
    {
        double v2=sqrt(l*l-v1*v1);
        if (a*v1+b*v2<v1*v2) return -1e+20;
        else return (a*v1+b*v2-v1*v2)/l;
    }
    int main()
    {
    	freopen("b.in","r",stdin);
    	freopen("b.out","w",stdout);
        scanf("%d%d%d",&a,&b,&l);
        if (a>=l && b>=l) printf("%d.0000000
    ",l);
        else
        {
            if (a>=l) printf("%d.0000000
    ",b);
            else
            {
                if (b>=l) printf("%d.0000000
    ",a);
                else
                {
                    double lv=0.0,rv=l;
                    for (int c=1;c<=100;c++)
                    {
                        double m1=(rv-lv)/3.0+lv;
                        double m2=lv+rv-m1;
                        if (get(m1)<0.0 || get(m2)<0.0)
                        {
                            printf("My poor head =(
    ");
                            return 0;
                        }
                        if (get(m1)<get(m2)) rv=m2;
                        else lv=m1;
                    }
                    printf("%.7lf
    ",get(rv));
                }
            }
        }
        return 0;
    }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    突然间我明白泪水映出的岁月,付出所有只为找寻你的梦。————汪峰《笑着哭》

  • 相关阅读:
    instanceof操作符判断对象类型
    继承
    题解 P3943 星空
    NOIP 模拟 10 考试总结
    题解 P3942 将军令
    题解 P3941 入阵曲
    题解 P3191 [HNOI2007]紧急疏散EVACUATE
    NOIP 模拟 9 考试总结
    NOIP 模拟 9 分组
    NOIP 模拟 9 数颜色
  • 原文地址:https://www.cnblogs.com/Damitu/p/7654601.html
Copyright © 2011-2022 走看看