标签:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1969
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4547 Accepted Submission(s): 1837
1 #include <cstdio> 2 #include <cmath> 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 double pi = acos(-1.0); 8 int N,F,t; 9 double v[11111]; 10 11 int main() 12 { 13 int T; 14 int N,F; 15 int i; 16 int r; 17 double left,right,mid; 18 double v[10011]; 19 20 21 scanf("%d",&T); 22 while(T--) 23 { 24 scanf("%d%d",&N,&F); 25 F++;//加上自己 26 right = 0; 27 for(i=0; i<N; i++) 28 { 29 scanf("%d",&r); 30 v[i] = pi * r * r; 31 right = max(right, v[i]);//找出面积最大的饼,为二分上界 32 } 33 left=0; 34 mid=(left + right) / 2; 35 while(right - left >= 0.0000001)//精度要求 36 { 37 t=0; 38 for(i=0; i<N; i++) t += (int)(v[i]/mid); 39 if(t >= F) 40 left = mid; 41 else 42 right = mid; 43 mid = (left + right) / 2; 44 } 45 printf("%0.4lf\n",mid); 46 } 47 return 0; 48 }
标签:
原文地址:http://www.cnblogs.com/dxd-success/p/4272294.html