方法:二分。

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

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

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

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

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

上代码!

 #include <stdio.h>
#include <math.h>
#define pie 3.1415926535897932384626433
double Pies[+];
int n,f;
double find(double mmax){
int cnt;
int i;
double left=;
double right=mmax;
double mid;
double res=;
while(right-left>0.00001){
mid=(right+left)/;
cnt=;
for(i=;i<n;++i){
cnt+= (int)(Pies[i]/(mid));
}
if(cnt>=f){
left=mid;
if(mid>res)
res=mid;
}
else right=mid;
}
return mid;
} int main(){
int i,j;
int Case;
double mmax;
double res;
while(~scanf("%d",&Case)){
while(Case--){
scanf("%d%d",&n,&f);
f++;
mmax=-;
for(i=;i<n;++i){
scanf("%lf",&Pies[i]);
Pies[i]=pie*Pies[i]*Pies[i];
if(Pies[i]>mmax) mmax=Pies[i];
}
res=find(mmax);
printf("%.4f\n",res);
}
}
return ;
}

最新文章

  1. git放弃本地修改 强制更新
  2. 关于iOS10的允许访问用户数据产生的问题
  3. 关于iOS9,Xcode7以上的安全性问题
  4. SQLAlchemy 操作数据库
  5. 前端自动化工具 -- fis 使用简介
  6. 使用记事本+CSC编译程序
  7. python工具程序一、复制目录中指定扩展名的文件
  8. Mysql创建函数时报错
  9. 使用VS2010调用matlab的mat格式文件
  10. 以boost::function和boost:bind取代虚函数
  11. Swing中耗时任务需要另起新线程,这个新线程中更新GUI的操作仍需由EDT来做(转)
  12. (转载)Sybase:bcp命令参考
  13. 豹哥嵌入式讲堂:ARM开发之文件详解(2)- linker文件
  14. Bool的转录功能
  15. webpack4配置详解之常用插件分享
  16. 19.C# 泛型
  17. 译:9.使用Redis进行消息传递
  18. 学习笔记-AngularJs(五)
  19. 【代码审计】LaySNS_v2.2.0 System.php页面存在代码执行漏洞分析.
  20. python3 怎么爬取新闻网站?

热门文章

  1. xpath提取目录下所有标签内的内容,递归 //text()
  2. linux下tomcat服务的启动、关闭与错误跟踪
  3. gettimeofday() 获取系统时间,精确到微秒 这个似乎只能在linux 下用,不能在windows 下用
  4. [Java] 内部类的用法
  5. IE10修改select样式
  6. 关于在页面总嵌入iframe,ifram中发起请求,服务器端的session为空问题解决
  7. 算法库:clapack安装配置
  8. CodeForces 604C 【思维水题】`
  9. (转)C# SSL-X509使用
  10. SQL Server设置主键自增长列