zoukankan      html  css  js  c++  java
  • 1969 Pie

    二分查找

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    double pi=2*acos(-1.0);
    double ex=1e-5;
    
    int main()
    {
        int T,n,f,_,cnt,flag,i;
        double a[10000+24], Max,Min,Mid;
        scanf("%d",&_);
        while(_--)
        {
            scanf("%d%d",&n,&f);
            for(i=1;i<=n;i++)
            {
                scanf("%lf",&a[i]);
                a[i]=a[i]*a[i]*pi;
            }
            Min=0;
            Max=10000*10000*pi;
            Mid=(Min+Max)/2.0;
            while(1)
            {
                if(Max-Min<ex)
                {
                    printf("%.4f
    ",Mid/2);
                    break;
                }
                else
                {
                    cnt=0;
                    for(i=1;i<=n;i++)
                    {
                        cnt+=(int)(a[i]/Mid);
                    }
                    if(cnt>=f+1) flag=1;
                    else flag=0;
                    if(flag) Min=Mid,Mid=(Min+Max)/2.0;
                    else Max=Mid,Mid=(Min+Max)/2.0;
                }
            }
        }
        return 0;
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    Java's Volatile Keyword
    reflection
    Spring
    Stack
    Set
    Vector & ArrayList
    CreateFileDemo
    session原理
    multithreadingDemo
    REST风格
  • 原文地址:https://www.cnblogs.com/xryz/p/4848007.html
Copyright © 2011-2022 走看看