HDU_1969_Pie
来源:互联网 发布:百度数据库在哪里 编辑:程序博客网 时间:2024/06/08 09:45
这个题目基本就是坑细节和精度。
是否求饼的总面积然后除以人数来确定二分上限并不是这个问题的关键。
而且不知道饼多的时候求总面积会不会产生误差。
另外收到提醒 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;}
0 0
- HDU_1969_Pie
- HDU_1969_Pie
- hdu_1969_pie(二分)
- Android windowSoftInputMode属性详解
- IOS 7 改版之后 获取 唯一标志符
- 除非必须,否则不用递增递减运算符的后置版本
- Lucene 5.2.1 demo
- 关于安卓的小知识点
- HDU_1969_Pie
- 黑马程序员——Java基础-数组、帮助文档
- java 编程小技巧
- Android开源框架:AndroidAnnotations基本介绍
- 小桐学设计模式--策略模式
- Github上的andoird开源组件整理
- hdu1133 Buy the Ticket (卡兰特数应用+java大数)
- Snail—OC学习之可变数组NSMutableArray
- ORACLE系统函数