FZU 2095 水面高度
2016-03-16 07:26
288 查看
一共六种情况。手算即可。
#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; }
相关文章推荐
- JDK配置环境变量的原因(windows)
- 17. Letter Combinations of a Phone Number | Java最短代码实现
- old linkedin profile
- WCF入门教程——一个简单Demo(六)
- ES5 对象的扩展(Object.preventExtensions)、密封(Object.seal)和冻结(Object.freeze)
- IE10/11克隆textarea时 bug
- struts2中的addActionError 、addFieldError、addActionMessage的方法
- Linux并发(进程的生老病死)
- 有序链表合并
- [BZOJ 3585]mex
- 一步一脚印:GNOME 十八年进化史
- Qt错误总结
- Matlab 图像像素点在RGB空间的显示
- WCF入门教程——WCF的通信模式(五)
- Hidden Surface Removal / Visible Surface Determination
- WCF入门教程——WCF的配置文件(四)
- lintcode-medium-Combination Sum II
- bzoj 1878: [SDOI2009]HH的项链
- IT忍者神龟之Windows安装MySQL解压版本
- bzoj 1877: [SDOI2009]晨跑