//题意:这是一个分蛋糕的游戏, t个测试数据,输入n, f  n代表的是n块蛋糕,蛋糕的高为1, f代表的是f个人朋友,然后输入每份蛋糕的半径
//      将n块蛋糕分成 f+1 份 每一份都是完成的一块蛋糕,但是可以形状不一样,就每个人最大的蛋糕体积 v  ,
//注意 pi 精度不能小于   3.14159265359
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
const double pi=3.14159265359; const double eps=0.000001;
int a[];
using namespace std; int main(){
int t;
cin>>t;
while(t--){
int n, f;
double sum = ;
cin>>n>>f;
f = f+;
memset(a,,sizeof(a));
for(int i=;i<=n;i++){
cin>>a[i];
a[i] = a[i]*a[i];
sum += a[i];
}
double left = , right = sum/f, mid;
while(right-left>eps){
mid = (right+left)/;
int ant = ;
for(int i=;i<=n;i++){
ant += (int)(a[i]/mid);
}
if(ant>=f)left = mid;
else right = mid;
} printf("%.4f",mid*pi);
if(t!=)printf("\n");
}
}

POJ-3122(二分算法)的更多相关文章

  1. POJ 3122 二分

    大致题意: 就是公平地分披萨pie 我生日,买了n个pie,找来f个朋友,那么总人数共f+1人 每个pie都是高为1的圆柱体,输入这n个pie的每一个尺寸(半径),如果要公平地把pie分给每一个人(就 ...

  2. POJ 3122 & 3258 & 3273 #二分

    以下三道都是经典二分,道理都差不多,代码就贴在一起了. POJ 3122    POJ 3258    POJ 3273 POJ 3122: #include<iostream> #inc ...

  3. 【POJ 3122】 Pie (二分+贪心)

    id=3122">[POJ 3122] Pie 分f个派给n+1(n个朋友和自己)个人 要求每一个人分相同面积 但不能分到超过一个派 即最多把一整个派给某个人 问能平均分的最大面积 二 ...

  4. POJ 3122-Pie(二分+精度)

    题目地址:id=3122">POJ 3122 题意:给出n个pie的直径.有F+1个人,假设给每人分的大小同样(形状能够不同),每一个人能够分多少.要求是分出来的每一份必须出自同一个p ...

  5. poj 3104 二分

    Drying Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12568   Accepted: 3243 Descripti ...

  6. python-Day4-迭代器-yield异步处理--装饰器--斐波那契--递归--二分算法--二维数组旋转90度--正则表达式

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  7. what' the python之递归函数、二分算法与汉诺塔游戏

    what's the 递归? 递归函数的定义:在函数里可以再调用函数,如果这个调用的函数是函数本身,那么就形成了一个递归函数. 递归的最大深度为997,这个是程序强制定义的,997完全可以满足一般情况 ...

  8. Python练习-递归二分算法

    # 编辑者:闫龙 #递归,二分算法演示 l = [i for i in range(1,100)]#定义一个列表l,并追加1-99的所有数字 def FindNum(num,l):#定义函数FindN ...

  9. POJ - 2018 二分+单调子段和

    依然是学习分析方法的一道题 求一个长度为n的序列中的一个平均值最大且长度不小于L的子段,输出最大平均值 最值问题可二分,从而转变为判定性问题:是否存在长度大于等于L且平均值大于等于mid的字段和 每个 ...

  10. Java冒泡,快速,插入,选择排序^_^+二分算法查找

    这段时间在学Java,期间学到了一些排序和查找方法.特此写来和大家交流,也方便自己的日后查看与复习. 1.下边是Java的主类: public class Get { public static vo ...

随机推荐

  1. Windows命令行使用总结(持续更新)

    1. 根据端口号查找进程: netstat -ano | findstr "port" 2. 获取任务列表: tasklist 3. 如果我们想要结束某个程序的所有进程的话,比如, ...

  2. C# 处理json字符串中image数据(byte)Base64

    static void Main(string[] args)        { string factString = "中华人民共和国"; byte[] myByte; str ...

  3. JavaScript this用法

    当this为全局变量时,this为window对象 <script> // 在全局变量中,this为window window.onload= function(){ alert(wind ...

  4. 【Javascript-基础-Date】本地时间与UTC(GMT)时间转换

    UTC(GMT) 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinat ...

  5. Oracle高级函数篇之递归查询start with connect by prior简单用法

    路飞:" 把原来CSDN的博客转移到博客园咯!" 前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询.下面简单来举个例子.在工作中我们经常会遇到 ...

  6. Python 分支、循环、条件、枚举

    对于表达式,分为“左结合”和“右结合” 左结合:对于没有 = 号的,从左到右边,当然要考虑优先级. 右结合:对于有 = 号存在的情况,右边的自成一体,然后赋值给左边变量   优先级: 逻辑运算符的优先 ...

  7. Java并发编程(二)创建线程的三种方法

    进程与线程 1.  进程 进程和代码之间的关系就像音乐和乐谱之间的关系一样,演奏结束的时候音乐就不存在了但乐谱还在:程序执行结束的时候进程就消失了但代码还在,而计算机就是代码的演奏家. 2. 线程 线 ...

  8. Eclipse部署Web项目,常用操作和常见错误的解决方案

    部署Web项目到tomcat 在eclipse中找到Servers项,打开服务器(F3)(建议直接删除服务器,重新建立再设置比较好)1.Servers Locations 中选择Use Tomcat ...

  9. 【Linux】管理文件系统

    文件系统概念: 文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表 当前所使用磁盘的容量信息 磁盘的可用信息,包括已占用和剩余的空间: 文件与目录的 ...

  10. thinkPHP写txt日志文件

     file_put_contents(DATA_PATH.'文件名.txt', '收到请求:' . date('Y-m-d H:i:s') . PHP_EOL . '通知信息:' . $显示的变量名. ...