zoukankan      html  css  js  c++  java
  • 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;
    }
            
            
                
            
       
            
               
        









  • 相关阅读:
    02-CSS基础与进阶-day4_2018-08-31-20-42-09
    02-CSS基础与进阶-day4__2018-08-31-20-22-57
    02-CSS基础与进阶-day3_2018-08-29-21-30-56
    02-CSS基础与进阶-day3_2018-08-29-20-39-58
    02-CSS基础与进阶-day3_2018-08-29-20-20-56
    02-CSS基础与进阶-day2_2018-08-27-22-00-56
    02-CSS基础与进阶-day2__2018-08-27-21-27-31
    02-CSS基础与进阶-day2_2018-08-27-20-57-55
    Pytest(12)pytest缓存
    Pytest(11)allure报告
  • 原文地址:https://www.cnblogs.com/csnd/p/12062646.html
Copyright © 2011-2022 走看看