• Hdoj 2289.Cup 题解


    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

    The 4th Baidu Cup final


    思路

    高精度二分的题目,注意圆台的体积公式为(V=frac{1}{3}pi h(R^2+r^2+Rr))

    不断二分查找最接近的h就好了,详见代码

    代码

    #include<bits/stdc++.h>
    #define M_PI 3.14159265358979323846
    using namespace std;
    double r,R,H,V;
    const double eps = 1e-8;
    double cal(double h)
    {
    	double t = r + (R-r)*h/H;//求出h高度对应的截面的圆的半径
    	return M_PI*h*(t*t + r*r + t*r)/3;
    }
    int main()
    {
    	int t;
    	cin >> t;
    	while(t--)
    	{
    		cin >> r >> R >> H >> V;
    		double ans = 0;
    		double l = 0, r = 100.0;
    		double mid;
    		while(r-l>=eps)
    		{
    			mid = (l+r)/2;
    			if(cal(mid)<V)
    				l = mid;
    			else
    				r = mid;
    		}
    		printf("%.6lf
    ",l);
    	}
    	return 0;
    }
    
  • 相关阅读:
    七种程序设计模式
    理清JavaScript正则表达式
    采用管道处理HTTP请求
    AngularJS之Service4
    Net Core-Razor
    中间件(Middleware)
    Redis集群明细文档(转)
    nginx 301跳转到带www域名方法rewrite(转)
    Redis启动多端口,运行多实例(转)
    web框架之Spring-MVC环境搭建(转)
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/9967435.html
Copyright © 2020-2023  润新知