HDOJ1696 Pie【二分】----武科大ACM暑期集训队选拔赛8题

it2022-05-17  70

 

开始遇到题目,以为就是简单的计算sum然后除f+1呢。。。惭愧了~

二分法求线性方程的解、折半查找这些代码都写过,不过那些都是教科书上的东西,今天自己做了这道题,才发现,原来这就是二分。。。

Problem : 1969 ( Pie )     Judge Status : AcceptedRunId : 5918963    Language : C    Author : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta #include <stdio.h> #include <math.h> #define PI 3.1415926535897931 double v[10001]; int n,f; int test(double x) { int s=0,i; for (i=0;i<n;i++) s+=(int)(v[i]/x); return s>=f?1:0; } int main() { int cas,i,r; double sum,max; double left,right,mid; scanf("%d",&cas); while (cas--) { scanf("%d%d",&n,&f); f+=1; sum=0; for (i=0;i<n;i++) { scanf("%d",&r); v[i]=(double)PI*r*r; sum+=v[i]; } max=sum/f; left=0.0; right=max; while ((right-left)>1e-6) { mid=(left+right)/2.0; if (test(mid)) left=mid; else right=mid; } printf("%.4lf\n",mid); } return 0; }

 

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/05/09/2493407.html

相关资源:数据结构—成绩单生成器

最新回复(0)