码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1969

时间:2014-07-21 00:03:56      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   

陶叔说的比较灵活的二分

开始的时候并没有弄清楚这是什么情况

再想到二分

 

那么就是把最大Pie的面积作为上界,下界为0

就解决了

 1 #include <iostream>
 2 #include <cmath>
 3 #include <algorithm>
 4 #include <stdio.h>
 5 using namespace std;
 6 
 7 
 8 int main()
 9 {
10     int T;
11     cin>>T;
12     for(int test = 0;test<T;test++)
13     {
14     int N,F;
15     cin>>N>>F;
16     F+=1;
17 
18     int* Radius = new int[N];
19     double* Pie = new double[N];
20     for(int i =0;i<N;i++)
21     {
22     cin>>Radius[i];
23     Pie[i] = Radius[i]*Radius[i]*acos(-1.0);
24     }
25 
26     sort(Pie,Pie+N);
27 
28     double high = Pie[N-1];
29     double low = 0;
30 
31     while(high-low>1e-5)
32     {
33         double mid = (high + low)/2.0;
34         bool isEnough = false;
35         int num = 0;
36         for(int j =0; j<N ; j++)
37         {
38             num+=(int)(Pie[j]/mid);
39        }
40          isEnough = (num>=F);
41         if(isEnough)
42         {
43             low = mid;
44         }else
45         {
46         high = mid;
47         }
48     }
49     printf("%.4lf\n",(high+low)/2.0);
50     }
51 
52     return 0;
53 }

HDU 1969,布布扣,bubuko.com

HDU 1969

标签:style   blog   color   os   io   for   

原文地址:http://www.cnblogs.com/Run-dream/p/3857360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!