• POJ 3122 二分


    大致题意:
    就是公平地分披萨pie
    我生日,买了n个pie,找来f个朋友,那么总人数共f+1人
    每个pie都是高为1的圆柱体,输入这n个pie的每一个尺寸(半径),如果要公平地把pie分给每一个人(就是所有人得到的pie尺寸一致,但是形状可以不同),而且每个人得到的那份pie必须是从同一个pie上得到的
    后面那句很重要,
    就是说如果有3个pie, 尺寸分别为1,2,3,
    如果要给每人尺寸为2的pie,那么最多分给2个人,而不是3个人
    因为第一个pie尺寸为1,小于2,扔掉
    第二个pie尺寸为2,等于2,刚好分给一个人
    第三个pie尺寸为3,切出尺寸为2的一份,分给一个人,剩下的尺寸为1的就扔掉

    千万不要陷入 (1+2+3)/2=3人的误区,这样就变成求平均了
    (转自小優YoU的blog http://blog.csdn.net/lyy289065406/article/details/6648565

    就这么随便搞一搞就AC了。

    // by SiriusRen
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    double pi=3.1415926535898,l,r,a[10005];
    int cases,n,f;
    int main()
    {
        scanf("%d",&cases);
        while(cases--){
            l=r=0;
            scanf("%d%d",&n,&f);
            for(int i=1;i<=n;i++)scanf("%lf",&a[i]),a[i]*=a[i],r=max(r,a[i]);
            while(r-l>=1e-6){
                int jy=0;
                double mid=(l+r)/2.0;
                for(int i=1;i<=n;i++)jy+=(int)a[i]/mid;
                if(jy>f)l=mid;
                else r=mid;
            }
            printf("%.4lf
    ",r*pi);
        }
    }

    这里写图片描述

  • 相关阅读:
    noip2015运输计划
    bzoj3595 方伯伯的oj
    noip模拟赛 #3
    圆方树
    AtCoder AGC #4 Virtual Participation
    noip模拟赛 #2
    AtCoder AGC #3 Virtual Participation
    UNR #1 火车管理
    noip模拟赛
    AtCoder AGC #2 Virtual Participation
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532428.html
Copyright © 2020-2023  润新知