zoukankan      html  css  js  c++  java
  • poj3122 pie

    方法:二分。

    题目意思:要过生日了,我请大家吃pie,然后人数一共是f+1(我自己)。每个人的pie不能是拼接的,而且每个人的面积是一样的,这样就用二分枚举。

    范围是0~最大的那块pie。

    然后用每一块去除枚举值,加到cnt上,当cnt>=f+1时候找大一点的面积, 否则找小一点的面积

    pie的值要取得精确一点 , = =

    另外在输出时候要是%f,如果用%lf会WA的。

    上代码!

     1 #include <stdio.h>
     2 #include <math.h>
     3 #define  pie 3.1415926535897932384626433
     4 double Pies[10000+10];
     5 int n,f;
     6 double find(double mmax){
     7     int cnt;
     8     int i;
     9     double left=0;
    10     double right=mmax;
    11     double mid;
    12     double res=0;
    13     while(right-left>0.00001){
    14         mid=(right+left)/2;
    15         cnt=0;
    16         for(i=0;i<n;++i){
    17             cnt+= (int)(Pies[i]/(mid));
    18         }
    19         if(cnt>=f){
    20             left=mid;
    21             if(mid>res)
    22                 res=mid;
    23         }
    24         else       right=mid;
    25     }
    26     return mid;
    27 }
    28 
    29 
    30 int main(){
    31     int i,j;
    32     int Case;
    33     double mmax;
    34     double res;
    35     while(~scanf("%d",&Case)){
    36         while(Case--){
    37             scanf("%d%d",&n,&f);
    38             f++;
    39             mmax=-1;
    40             for(i=0;i<n;++i){
    41                 scanf("%lf",&Pies[i]);
    42                 Pies[i]=pie*Pies[i]*Pies[i];
    43                 if(Pies[i]>mmax) mmax=Pies[i];
    44             }
    45             res=find(mmax);
    46             printf("%.4f
    ",res);
    47         }
    48     }
    49     return 0;
    50 }
    51             
  • 相关阅读:
    Tomcat 启动很慢?
    CentOS 下 安装 JDK8
    CentOS 下 安装 nginx
    SpringBoot 之 打war包
    Spring MVC处理异常有3种方法
    springboot 之 使用jetty web容器
    IDEA 中,编译后不拷贝 mybatis 配置的 mapper 的 xml 文件
    js 鼠标点击页面出现文字
    PHP 获取天气
    js 必须为字母或下划线, 一旦创建不能修改
  • 原文地址:https://www.cnblogs.com/symons1992/p/3551889.html
Copyright © 2011-2022 走看看