HDOJ1696 Pie【二分】----武科大ACM暑期集训队选拔赛8题
开始遇到题目,以为就是简单的计算sum然后除f+1呢。。。惭愧了~
二分法求线性方程的解、折半查找这些代码都写过,不过那些都是教科书上的东西,今天自己做了这道题,才发现,原来这就是二分。。。
Problem : 1969 ( Pie ) Judge Status : Accepted
RunId : 5918963 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
RunId : 5918963 Language : C Author : qq1203456195
Code 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://img2020.cnblogs.com/blog/323808/202004/323808-20200415172728571-1992447742.jpg)
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。