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 水面高度的主要内容,如果未能解决你的问题,请参考以下文章