Uva 派 (Pie,NWERC 2006,LA 3635)
Posted InWILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva 派 (Pie,NWERC 2006,LA 3635)相关的知识,希望对你有一定的参考价值。
依然是一道二分查找
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 6 const double PI=acos(-1.0); 7 int N,F; 8 double r[10001]; 9 10 bool ok(double area) 11 { 12 int sum=0; 13 for(int i=0;i<N;i++) 14 sum+=floor(r[i]/area); 15 return sum>=F+1; 16 } 17 18 int main() 19 { 20 int T; 21 cin>>T; 22 while(T--) 23 { 24 cin>>N>>F; 25 double maxn=-1; 26 for(int i=0;i<N;i++) 27 { 28 int a; 29 cin>>a; 30 r[i]=PI*a*a; 31 maxn=max(maxn,r[i]); 32 } 33 double L=0,R=maxn; 34 while(R-L>1e-4) 35 { 36 double M=(L+R)/2; 37 if(ok(M)) L=M;else R=M; 38 } 39 printf("%.4lf\n",L); 40 } 41 return 0; 42 }
以上是关于Uva 派 (Pie,NWERC 2006,LA 3635)的主要内容,如果未能解决你的问题,请参考以下文章
集合栈计算机(The Set Stack Computer,ACM/ICPC NWERC 2006,UVa12096)
集合栈计算机 (The SetStack Computer,ACM/ICPC NWERC 2006,UVa12096