• LA3635派


    题意:
          有F+1个人来分n个圆形派,每个人分到的必须是一个整块的派,形状无所谓,每个人分到的必须一样多,给你每个派的半径,问每个人能分到的最大派的面积是多少。


    思路:
          虽然不是求最小的最大或是最大的最小,但是这个题目依然可以用二分去做,我们枚举每个人分到的最大面积,这样就可以算出来这些派最多能够满足几个人的要求,然后去判断二分的方向,一开始eps写的有点小,TLE了一次,后来改大点AC了。




    #include<stdio.h>
    #include<math.h>


    #define N 10000 + 10
    #define eps 0.000001


    double PI = acos(-1.0);


    double ps[N];


    bool ok(int mid ,int n ,int m)
    {
         int Sum = 0;
         for(int i = 1 ;i <= n ;i ++)
         {
            Sum += int(ps[i] / mid);
         }
         return Sum >= m;
    }
            
                 


    int main ()
    {
        int n ,m ,i;
        double r ,Max;
        while(~scanf("%d %d" ,&n ,&m))
        {
            Max = 0;
            for(i = 1 ;i <= n ;i ++)
            {
               scanf("%lf" ,&r);
               ps[i] = PI * r * r;
               if(Max < ps[i]) Max = ps[i];
            }
            double low ,mid ,up ,Ans = 0;
            low = 0 ,up = Max;
            while(up - low >= eps)
            {
                mid = (low + up) / 2;
                if(ok(mid ,n ,m + 1))
                Ans = low = mid;
                else up = mid;
            }
            printf("%.5lf " ,Ans);
        }
        return 0;
    }
            
            
                
            
       
            
               
        









  • 相关阅读:
    eclipse 中文乱码
    为linux下ibus输入法添加搜狗词库
    汇编语言数据类型与声明
    linux下访问小米手机sd卡
    ubuntu linux下真机调试android程序
    Rhythmbox mp3音乐乱码的解决办法
    初学python线程(转)
    linux下安装安装BeautifulSoup
    django模板过滤器
    django使用静态文件
  • 原文地址:https://www.cnblogs.com/csnd/p/12062646.html
Copyright © 2020-2023  润新知