FZU2095 水面高度

Posted Fighting Heart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FZU2095 水面高度相关的知识,希望对你有一定的参考价值。

一共六种情况。手算即可。

#include<cstdio>
#include<cstring>
#include<cmath>

int T;
double a,b,c,d,x;
double ans;

int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%lf%lf%lf%lf%lf",&a,&b,&c,&d,&x);
        double h=sqrt(c*c-x*x*c*c/(a*a));
        double p=x*c/a;
        double tmp=a*d;

        if(x<=h)
        {
            double m=a*a/sqrt(a*a-x*x);
            double s1=m*x/2;
            double s2=a*c-m*x;
            double s3=m*x/2;

            if(tmp<=s1) ans=sqrt(tmp/s1)*x;
            else if(tmp<=s1+s2) ans=(tmp-s1+m*x)/m;
            else ans=x+h-sqrt((a*c-tmp)/s1)*x;
        }
        else
        {
            double m=c*c/p;
            double s1=m*h/2;
            double s2=a*c-m*h;
            double s3=m*h/2;

            if(tmp<=s1) ans=sqrt(tmp/s1)*h;
            else if(tmp<=s1+s2) ans=(tmp-s1+m*h)/m;
            else ans=h+x-sqrt((a*c-tmp)/s1)*h;
        }

        printf("%.2lf\n",ans);
    }
    return 0;
}

 

以上是关于FZU2095 水面高度的主要内容,如果未能解决你的问题,请参考以下文章

hdu 2095

圆锥体的高度是多少?

圆锥体的高度是多少?

圆锥体的高度是多少?

Android获取片段中的布局高度和宽度

css有用的代码片段