开始遇到题目,以为就是简单的计算sum然后除f+1呢。。。惭愧了~
二分法求线性方程的解、折半查找这些代码都写过,不过那些都是教科书上的东西,今天自己做了这道题,才发现,原来这就是二分。。。
Problem : Judge Status : AcceptedRunId : 5918963 Language : C Author : Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include#include #define PI 3.1415926535897931double v[10001];int n,f;int test(double x){ int s=0,i; for (i=0;i =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 1e-6) { mid=(left+right)/2.0; if (test(mid)) left=mid; else right=mid; } printf("%.4lf\n",mid); } return 0;}