博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2289:Cup(二分 + 数学)
阅读量:6268 次
发布时间:2019-06-22

本文共 1807 字,大约阅读时间需要 6 分钟。

Cup

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8215    Accepted Submission(s): 2504


Problem Description
The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the water in the cup, can you tell us it height? 
The radius of the cup's top and bottom circle is known, the cup's height is also known.
 

Input
The input consists of several test cases. The first line of input contains an integer T, indicating the num of test cases.
Each test case is on a single line, and it consists of four floating point numbers: r, R, H, V, representing the bottom radius, the top radius, the height and the volume of the hot water.
Technical Specification
1. T ≤ 20.
2. 1 ≤ r, R, H ≤ 100; 0 ≤ V ≤ 1000,000,000.
3. r ≤ R.
4. r, R, H, V are separated by ONE whitespace.
5. There is NO empty line between two neighboring cases.
 

Output
For each test case, output the height of hot water on a single line. Please round it to six fractional digits.
 

Sample Input
 
1 100 100 100 3141562
 

Sample Output
 
99.999024
 

Source
 
题意:给定一个杯的底半径,口半径,高度,水的体积,求水的高度。

思路:水的高度一定介于0到杯子的高度,此范围内二分即可,圆台体积:v = π/3*h*(R*R + r*r + R*r),根据三角函数易有tanθ = H/(R-r) = h/(R'-r)。此题水的体积可能大于杯的体积,这时应处理结果为杯的高度,否则可能超时。

# include 
# include
# define pi acos(-1.0)double r, R, H, v, left, right, mid, V;double fun(double h){ double R1 = (R-r)*h/H + r; return pi/3*h*(R1*R1+r*r+R1*r);}int main(){ int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf",&r,&R,&H,&v); V = pi/3*H*(R*R+r*r+R*r); left = 0; right = H; mid = (left+right)/2; int tmp; while(fabs(fun(mid)-v)>1e-8 && fabs(fun(mid)-V)>1e-8) { if(fun(mid)

转载于:https://www.cnblogs.com/junior19/p/6730047.html

你可能感兴趣的文章
【Linux】Linux下统计当前文件夹下的文件个数、目录个数
查看>>
Hibernate_14_数据连接池的使用
查看>>
Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)
查看>>
jacky自问自答-java并发编程
查看>>
Struts2+JSON数据
查看>>
zTree实现单独选中根节点中第一个节点
查看>>
Cocos2D-x设计模式发掘之中的一个:单例模式
查看>>
很强大的HTML+CSS+JS面试题(附带答案)
查看>>
用树莓派实现RGB LED的颜色控制——C语言版本号
查看>>
VC2012编译CEF3-转
查看>>
java 自己定义异常,记录日志简单说明!留着以后真接复制
查看>>
Android 使用AIDL实现进程间的通信
查看>>
机器学习(Machine Learning)&深度学习(Deep Learning)资料
查看>>
jquery的图片轮播 模板类型
查看>>
C# 获取文件名及扩展名
查看>>
Web安全学习计划
查看>>
输出有序数组的连续序列范围
查看>>
zinnia项目功能分析
查看>>
windows cmd for paramiko
查看>>
SQL经典面试题集锦
查看>>