Time
Limit: 5000/1000 MS (Java/Others) Memory Limit:
65536/32768 K (Java/Others)
Total Submission(s):
3399 Accepted Submission(s):
1320
1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<cstdlib> 5 #include<math.h> 6 using namespace std; 7 const double pi =acos(-1.0); 8 9 int a[10012]; 10 11 int fun(double x,int n) 12 { 13 int i,num=0; 14 double y; 15 for(i=1;i<=n;i++) 16 { 17 y=a[i]*a[i]*pi; 18 num=num+(int)(y/x); 19 } 20 return num; 21 } 22 int main() 23 { 24 int T,i,N,F,MAX,ans; 25 double l,r,mid; 26 scanf("%d",&T); 27 while(T--) 28 { 29 scanf("%d%d",&N,&F); 30 F++; 31 for(i=1,MAX=-1;i<=N;i++) 32 { 33 scanf("%d",&a[i]); 34 if(a[i]>MAX) MAX=a[i]; 35 } 36 l=0;r=MAX*MAX*pi; 37 while(r-l>1e-7) 38 { 39 mid=(l+r)/2; 40 ans=fun(mid,N); 41 if( ans >=F ) 42 l=mid; 43 else r=mid; 44 } 45 printf("%.4lf\n",mid); 46 } 47 return 0; 48 }
原文:http://www.cnblogs.com/tom987690183/p/3563775.html