HDU_1969_Pie
2015-07-22 11:15
337 查看
这个题目基本就是坑细节和精度。
是否求饼的总面积然后除以人数来确定二分上限并不是这个问题的关键。
而且不知道饼多的时候求总面积会不会产生误差。
另外收到提醒 count,max等最好不再作为变量。
是否求饼的总面积然后除以人数来确定二分上限并不是这个问题的关键。
而且不知道饼多的时候求总面积会不会产生误差。
另外收到提醒 count,max等最好不再作为变量。
#include <iostream> #include<stdio.h> #include<cmath> using namespace std; typedef double LD; const LD AC=1e-6; //保留4位要多一些,但太高会超时 const LD PI=acos(-1.0); const int M=10005; LD r[M]; int npi(LD x,int n) { int count=0; for(int i=0;i<n;i++) count+=floor(r[i]/x); //这里要向下取正 return count; } LD bs(LD max,int f,int n) { LD lo=0,hi=max; LD mid; while(hi-lo>=AC) { mid=(hi+lo)/2.0; if(npi(mid,n)>=f) lo=mid; else hi=mid; } return lo; //lo是最满足题目条件的hi与mid不一定 } int main() { int t; int n,f; LD maxp; scanf("%d",&t); while(t--) { maxp=0; scanf("%d%d",&n,&f); f++; //把f从朋友数变成总人数 for(int i=0;i<n;i++) { scanf("%lf",&r[i]); r[i]=r[i]*r[i]*PI; if(r[i]>maxp) maxp=r[i]; } printf("%.4lf\n",bs(maxp,f,n)); //这里是个坑,必须写%.4lf别的不行 } return 0; }
相关文章推荐
- Android 代码混淆
- Ubuntu 15.04 安装配置Apache和mysql的方法
- 汇编语言:第九章 转移指令的原理
- javascript div元素后追加节点
- openjudge 2705 跳绳的游戏
- ORACLE 表函数
- 小超的实习生涯之ImageLoader
- Tomcat + Spring MVC + HttpClient:如何使用PUT和PATCH方法传递数据
- createjs初学-简单的图片拖拽
- git不得不用的理由
- 小地形
- codevs1048
- photoshop菜单显示不全的解决方法
- 网页背景图固定不动,不跟随滚动条滚动
- 架构
- jsp service bean
- Noj 1064 快速排序
- Android 软键盘盖住输入框的问题
- 浮动IP简介
- Android不让弹出键盘挡住View