Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7302 Accepted Submission(s): 2732
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #define Max 10000+10 6 #define INF 10000000000 7 #define P 3.1415926535898 8 using namespace std; 9 double a[Max]; 10 int n,f; 11 int search(double size) 12 { 13 int num=0; 14 for(int i=0;i<n;i++) 15 num+=int(a[i]/size); 16 return num; 17 } 18 int main() 19 { 20 int T,i,j,e; 21 freopen("in.txt","r",stdin); 22 scanf("%d",&T); 23 while(T--) 24 { 25 scanf("%d%d",&n,&f); 26 f++; 27 for(i=0;i<n;i++) 28 { 29 scanf("%d",&e); 30 a[i]=e*e*P; 31 } 32 double mid,l=0,r=INF,k; 33 for(i=0;i<1000;i++) 34 { 35 mid=(l+r)/2; 36 if(search(mid)>=f) k=mid,l=mid; 37 else r=mid; 38 } 39 printf("%0.4lf\n",k); 40 } 41 }
原文:http://www.cnblogs.com/a1225234/p/5064906.html