(step4.1.2)hdu 1969(Pie——二分查找)
题目大意:n块馅饼分给m+1个人,每个人的馅饼必须是整块的,不能拼接,求最大的。
解题思路:
1)用总饼的体积除以总人数,得到每个人最大可以得到的V.但是每个人手中不能有两片或多片拼成的一块饼。
代码如下:
/*
* 1969_2.cpp
*
* Created on: 2013年8月14日
* Author: Administrator
*/ #include <stdio.h>
#include <math.h>
#include <string.h> double V[10001];
int N,F; //PI尽量用反余弦函数来算,否则可能精度不够
const double PI = acos(-1.0); /**
* 输入饼的面积,判断能否够分
* 若以此面积分割后所得的饼的块数>=人数,则够分
* 否则不够分
*/
bool test(double x){ //num .用来记录三块大馅饼最终能分成多少个小馅饼
int num = 0;
int i;
for( i = 1 ; i <= N ; ++i){ //V[i]/x 。计算每块馅饼能分成多少个小馅饼.其中的int体现了"每个人手中的馅饼不能是拼接而成的"
num += int(V[i]/x);
} //判断小馅饼数与朋友数的大小
if( num >= F){
return true;
}else {
return false;
}
} int main(){ int t;
scanf("%d",&t);
while(t--){
memset(V,0,sizeof(V));
scanf("%d%d",&N,&F); F = F+1;
int i;
double sum = 0;
for( i = 1 ; i <= N ; ++i){
int r;
scanf("%d",&r);
V[i] = PI*r*r;
sum += V[i];
} double max = sum/F; double l = 0;
double r = max;
double mid ;
while( r - l > 1e-6){//注意这里的精度问题
mid = (r+l)/2; if(test(mid)){
l = mid;
}else{
r = mid;
}
} printf("%.4lf\n",(l+r)/2); }
}
(step4.1.2)hdu 1969(Pie——二分查找)的更多相关文章
- HDU 1969 Pie(二分查找)
Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no ...
- HDU 1969 Pie(二分,注意精度)
Pie Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- HDU 1969 Pie [二分]
1.题意:一项分圆饼的任务,一堆圆饼共有N个,半径不同,厚度一样,要分给F+1个人.要求每个人分的一样多,圆饼允许切但是不允许拼接,也就是每个人拿到的最多是一个完整饼,或者一个被切掉一部分的饼,要求你 ...
- hdu 1969 Pie(二分查找)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1969 Pie Time Limit: 5000/1000 MS (Java/Others) Me ...
- 题解报告:hdu 1969 Pie(二分)
Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no ...
- 【hoj】2651 pie 二分查找
二分查找是一个非常主要的算法,针对的是有序的数列,通过中间值的大小来推断接下来查找的是左半段还是右半段,直到中间值的大小等于要找到的数时或者中间值满足一定的条件就返回,所以当有些问题要求在一定范围内找 ...
- Can you find it? HDU - 2141 (二分查找)
Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate ...
- HDU 1969 Pie【二分】
[分析] “虽然不是求什么最大的最小值(或者反过来)什么的……但还是可以用二分的,因为之前就做过一道小数型二分题(下面等会讲) 考虑二分面积,下界L=0,上界R=∑ni=1nπ∗ri2.对于一个中值x ...
- hdu 1969 pie 卡精度的二分
Pie Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
随机推荐
- Win10如何配置Jdk环境变量
对于每一位做Java开发的朋友来说,Jdk是必须要安装的,安装好了Jdk,其实并没有结束,还需要配置Jdk的环境变量,系统在不断地更新,小编给大家介绍一下如何在Win10下配置Jdk,并检测是否配置成 ...
- Xshell拖拽上传文件插件
lrzsz是一款在linux里可代替ftp上传和下载的程序.在linux中支持直接拖拽上传的插件:同时也支持rz和sz进行命令上传和下载. 插件安装 yum -y install lrzsz 上传(r ...
- C#中的特性 (Attribute) 入门 (一)
C#中的特性 (Attribute) 入门 (一) 饮水思源 http://www.cnblogs.com/Wind-Eagle/archive/2008/12/10/1351746.html htt ...
- 决策树算法(ID3)
Day Outlook Temperature Humidity Wind PlayTennis 1 Sunny Hot High Weak No 2 Sunny Hot High Strong No ...
- codevs 2577 医院设置
2577 医院设置 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 设有一棵二叉树,如下图 其中,圈中数字表示结点居民的人口.圈边 ...
- Codeforces.809E.Surprise me!(莫比乌斯反演 虚树)
题目链接 \(Description\) 给定一棵树,求\[\frac{1}{n(n-1)/2}\times\sum_{i\in[1,n],j\in[1,n],i\neq j}\varphi(a_i\ ...
- bzoj 4033
树形DP,dp[i][j]表示i子树中,选了j个白点,i子树中所有边的贡献. /************************************************************ ...
- Uva 5002 - The Queue DFS
On some special occasions Nadia’s company provide very special lunch for all employees of the compan ...
- gulp编译出现Cannot find module 'internal/util/types'——node环境的变更
一心埋头敲代码,再回首,nodejs都蹦跶到8.9版本了,为了跟上时代,妥妥的赶紧升级啊,升级的结果...Cannot find module 'internal/util/types'... 于 ...
- weblogic部署异常: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>
尝试使用weblogic部署一个Demo应用,在选择应用目录后,报出下面的异常: VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-val ...