zoukankan      html  css  js  c++  java
  • POJ 3122 Pie【二分答案】

    <题目链接>

    题目大意:

    将n个半径不一但是高度为1的蛋糕分给 F+1个人,每个人分得蛋糕的体积应当相同,并且需要注意的是,每个人分得的整块蛋糕都只能从一个蛋糕上切下来,而不是从几个蛋糕上东拼西凑而成。现在问每人分得蛋糕的体积是多少。

    解题分析:
    就是普通的二分答案,但是要注意一下浮点型二分的结构,与整型二分略有不同。

    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    const double PI=acos(-1.0);
    int n,m,arr[10010];
    const double eps=1e-6;
    
    bool juge(double x){
        int sum=0;
        for(int i=1;i<=n;i++){
            sum+=(int)(arr[i]/x);   //当每个人得到x体积蛋糕时,最多能够分给几个人
        }
        return sum>=(m+1); 
    }
    
    int main(){
        int T;scanf("%d",&T);
        while(T--){
            scanf("%d%d",&n,&m);
            int maxv=-0x3f;
            for(int i=1;i<=n;i++){
                scanf("%d",&arr[i]);
                arr[i]*=arr[i];      //先只进行半径的平方,不乘上pi,防止损失精度
                maxv=max(maxv,arr[i]);
            }
            double l=0,r=maxv*1.0;
            while(r-l>eps){    
                double mid=(l+r)/2;
                if(juge(mid))l=mid;
                else r=mid;
            }
            printf("%.4lf
    ",l*PI);
        }
        return 0;
    }

    2018-09-20

  • 相关阅读:
    StatefulSet分段更新
    StatefulSet更新策略
    Deployment的伸缩扩容
    Deployment的暂停和恢复
    Deployment回滚
    Deployment更新
    Deployment
    Prestop之sleep 90不生效
    kubernetes coredns服务异常解决
    calico/node is not ready: BIRD is not ready: BGP not established with xxxxx
  • 原文地址:https://www.cnblogs.com/00isok/p/9684043.html
Copyright © 2011-2022 走看看