zoukankan      html  css  js  c++  java
  • hdu 2289 Cup (二分法)

    http://acm.hdu.edu.cn/showproblem.php?pid=2289


    二分法解题。
    这个题很恶心。。。一开始测试样例都不能过,这个π一开始取3.1415926结果是99.999026,改为3.1414927,结果是99.999023。。我就发现这个π对结果影响很大,这个题对π的精度要求也比较高。。。然后我的π就改为3.1415926536。。。
    一开始判断跳出二分的条件是结果差值小于0.000000001,发现超时,改为0.01后还是超时。。。无语了。。。然后仔细想想,题目要求结果只要保留小数点6位,所以我就改了判断跳出循
    环的条件,改为二分后的结果和前一次的结果差值不大于0.000001就行了。。。。

    AC代码:
    #include<iostream>
    #include<cstdio>
    
    #define pai 3.1415926536
    
    using namespace std;
    
    int main()
    {
        int t;
        double r,R,h,v,vol,nowh,left,right,nowr,lasth;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lf%lf%lf%lf",&r,&R,&h,&v);
            lasth = left = 0.0;
            right = h;
            while(1)
            {
                nowh = (left+right)/2;
                if(lasth<nowh)
                {
                    if(nowh-lasth<0.0000001)   //判断当前值和上一次的值差值是否小于0.000001,是则退出
                    {
                        break;
                    }
                }
                else
                {
                    if(lasth-nowh<0.0000001)
                    {
                        break;
                    }
                }
                nowr = nowh*(R-r)/h+r;
                vol = pai*nowh*(r*r+nowr*r+nowr*nowr)/3;
                if(vol>v)
                {
                    right = nowh;
                }
                else
                {
                    left = nowh;
                }
                lasth = nowh;   //记录上次的值
            }
            printf("%.6lf
    ",nowh);
        }
    
        return 0;
    }
    


  • 相关阅读:
    ctags cscope
    u-boot initf_bootstage函数分析
    u-boot log_init函数分析
    u-boot v2018.01 启动流程分析
    DECLARE_GLOBAL_DATA_PTR
    CaptchaCodeManager
    UserTokenManager JwtHelper
    AdminSwagger2Configuration
    logService
    AdminWebSessionManager AdminAuthorizingRealm ShiroConfig ShiroExceptionHandler
  • 原文地址:https://www.cnblogs.com/james1207/p/3271415.html
Copyright © 2011-2022 走看看