zoukankan      html  css  js  c++  java
  • HDU 1969

    二分搜索答案

    注意PI的精度........

    #include <stdio.h>
    #define eps 1e-7
    int n,f;
    double ri[10005];
    int test(double d){
        int k=0,i;
        for(i=0;i<n;i++){
            if(ri[i]>=d)k+=(int)(ri[i]/d);
            if(k>=f)return 1;
        }
        return 0;
    }
    int main(){
        int t,i;
        double min=0,max=0,d;
        scanf("%d",&t);
        while(t--){
            scanf("%d %d",&n,&f);
            f++;
            min=0;
            max=0;
            for(i=0;i<n;i++){
                scanf("%lf",&ri[i]);
                if(ri[i]>max){max=ri[i];}
                ri[i]=ri[i]*ri[i];
            }
            max*=max;
            while(max-min>eps){                    //二分法,搜索答案,
                d=(min+max)/2;
                if(test(d))min=d;
                else max=d;
            }
            printf("%.4lf ",d*3.14159265358979323846);            //看discuss里说的,,,,第一次用,MATH_PI编译错误了
        }
        return 0;
    }

  • 相关阅读:
    TCP/IP四层模型
    Java中equals和==的区别
    最全前端资源汇集
    (转)php面向对象学习笔记
    学习内容
    Gulp入门教程
    seajs的CMD模式的优势以及使用
    正则
    Grunt
    Javascript 异步加载详解
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/3855175.html
Copyright © 2011-2022 走看看