UVALive 3635 Pie

来源:互联网 发布:九次方大数据信息集团 编辑:程序博客网 时间:2024/04/30 04:47

很常规的一道二分题 直接二分答案就好 注意eps太小会T

#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;const int mod=1000000007;const int maxn=1e4+5;const int inf=1e9;const double eps=1e-5;const double pai=acos(-1.0);double a[maxn];int n,f;bool ok(double x){    int cnt=0;    for(int i=0;i<n;i++)    {       cnt+=(int)(a[i]/x);       if(cnt>f)return 1;    }    return 0;}int main(){    int T_T;    scanf("%d",&T_T);    while(T_T--)    {    double l=0,r=0;    scanf("%d%d",&n,&f);    for(int i=0;i<n;i++)    {        scnaf("%lf",&a[i]);        a[i]=pai*a[i]*a[i];        r=max(r,a[i]);    }    while(fabs(l-r)>eps)    {        double mid=(l+r)/2;        if(ok(mid))            l=mid;        else r=mid;    }    printf("%.5lf\n",r);    }    return 0;}


0 0
原创粉丝点击