1 #include <iostream> 2 #include <cstdio> 3 #include <queue> 4 #include <cstring> 5 #include <algorithm> 6 #include <cmath> 7 8 using namespace std; 9 10 double PI=acos(-1.0); 11 double arr[10010]; 12 int n,m; 13 14 bool test(double mid) 15 { 16 int ans=0; 17 for(int i=0;i<n;i++) 18 { 19 ans+=(int)(arr[i]/mid); 20 } 21 if(ans>=m+1) 22 return true; 23 else 24 return false; 25 } 26 27 int main() 28 { 29 int T; 30 scanf("%d",&T); 31 while(T--) 32 { 33 scanf("%d%d",&n,&m); 34 double sum=0; 35 double rr; 36 for(int i=0;i<n;i++) 37 { 38 scanf("%lf",&rr); 39 arr[i]=PI*rr*rr; 40 sum+=arr[i]; 41 } 42 double r=sum/(m+1); 43 double mid=0.0; 44 double l=0.0; 45 while(r-l>1e-6) 46 { 47 mid=(r+l)/2; 48 if(test(mid)) 49 { 50 l=mid; 51 } 52 else 53 { 54 r=mid; 55 } 56 } 57 printf("%.4lf\n",mid); 58 } 59 return 0; 60 }
时间: 2024-10-08 21:55:56