标签:区间 cos display 条件判断 1.0 math name 分享 int
tips:
1.二分答案和二分查找还是有区别
2.条件判断和区间LR的改变是有关系的
3.二分答案的精度和区间LR的偏移量有关
4.上一道题的条件转换 最后一个满足C--->第一个满足!C
//还是二分答案,怎么二分呢,答案是啥呢? //但是这个找位置是实数啊 //选择控制精度吗? //之前那个距离肯定是整数,所以L<R直接二分是整数的距离 //二分答案如果是精度控制的话,左右区间的改变直接赋值为mid //即 L=mid,R=mid o(╥﹏╥)o 为啥呢? //可能因为-1答案偏移量太大了 ORZ #include<cstdio> #include<cmath> #include<algorithm> using namespace std; const int M=10010; int t,n,f; int r[M]; double s[M]; const double eps=1e-4; const double pi=acos(-1.0); int main(){ while(scanf("%d",&t)!=EOF){ while(t--){ scanf("%d%d",&n,&f); for(int i=0;i<n;i++){ scanf("%d",&r[i]); s[i]=pi*r[i]*r[i]; } sort(s,s+n); double L=0;double R=s[n-1]; while(R-L > eps){ int ans=0; double mid=L+(R-L)/2; for(int i=0;i<n;i++){ ans+=(int)(s[i]/mid); } if(ans >= f+1) L=mid; else R=mid; } double ans2=L; printf("%.4lf\n",ans2); } } return 0; }
标签:区间 cos display 条件判断 1.0 math name 分享 int
原文地址:https://www.cnblogs.com/SUMaywlx/p/9478299.html