- 浏览: 196923 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (137)
- c++ (74)
- c++,算法,回溯 (2)
- DP问题。 (9)
- DP问题,0/1背包问题 (3)
- 数学问题 (6)
- 贪心算法 (10)
- 排序 (16)
- 数据结构 (7)
- 容器 (2)
- 模拟问题 (2)
- 水题 (8)
- 并查集 (3)
- 非技术 (2)
- 素数问题 (1)
- DFS (3)
- 二叉树 (1)
- 递归 (1)
- 图论 (5)
- 最小生成树 (5)
- 最短路径 (6)
- bell_flaod算法 (2)
- hash (3)
- 二分查找 (1)
- 搜索 (5)
- BFS (5)
- STL (3)
- 字符串hash (1)
- 拓扑排序 (1)
- 字典树 (4)
- 哈弗曼树 (1)
- KMP (7)
- 线段树 (9)
- 树状数组 (6)
- 全排列 (2)
- DP问题 (2)
- LCS (1)
- 最长不下降子序列 (2)
- 面试经验 (3)
题意:作者要开一个生日party,他现在拥有n块高度都为1的圆柱形奶酪,已知每块奶酪的底面半径为r不等,作者邀请了f个朋友参加了他的party,他要把这些奶酪平均分给所有的朋友和他自己(f+1人),每个人分得奶酪的体积必须相等(这个值是确定的),形状就没有要求。现在要你求出所有人都能够得到的最大块奶酪的体积是多少? 思路:贪心的思想+二分。复杂度为O(nlogM),M为初始时的high-low。初始状态,上界high为每个人分得奶酪的体积sum,下界low = 0(或者是最小块的奶酪)。然后二分,每次的mid值为(low+high)/ 2,然后根据mid值(估计值)遍历n块奶酪,看看这个mid值能分给多少个人,如果份数大于等于f,表示mid偏小,low = mid,反之high = mid。 注意的问题: 1.数据得开double,开float的话精度不够,二分时 high - low > 0.000001 会出不来,导致 Time Limit Exceeded,而不是因为数据要求高而超时。 2.由于精度要求特别特别高,所以PI = 3.1415926535897932 和 high - low > 0.000001 是必 须的,也是这道题总是WA的地方。 代码如下: #include<iostream>
using namespace std;
const int Max = 10050;
const double PI = 3.1415926535897932;
int main()
{
int t, n, f, i;
double pie[Max];
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &f);
f++; // 加上作者一人。
double sum = 0;
for(i = 1; i <= n; i ++)
{
int r;
scanf("%d", &r);
pie[i] = r * r;
sum += pie[i];
}
double mid, low = 0, high = sum / f;
while(high - low > 0.000001)
{
mid = (low + high) / 2;
int count = 0; // count为当前mid值对应的能分给的人数。
for(i = 1; i <= n; i ++)
count += (int)(pie[i] / mid);
if(count >= f)
low = mid;
else high = mid;
}
printf("%.4lf\n", mid * PI);
}
return 0;
}
发表评论
-
虚函数、纯虚函数、虚基类、抽象类、虚函数继承、虚继承
2013-08-29 14:34 789虚函数:虚函数是C++中用于实现多态(polymorphis ... -
排序算法总结
2013-05-17 11:00 787选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, ... -
poj 3273
2012-12-11 16:49 949题意:给你天数n,和每天需要花的钱,让你把这些天分成m份(每份 ... -
算法复习贪心算法poj2393
2012-08-09 16:52 997题意:一个工厂每周要提供不同数量单位的酸奶酪,每周生产单位酸奶 ... -
算法复习之贪心算法poj2709
2012-08-09 16:14 994题意:一套涂料有3~12种颜色,每种颜色50ml。Emily上 ... -
算法复习之贪心算法poj 065
2012-08-09 15:07 860题意:有n条木棒,给出它们每条的l和w,用一台机器对它们进行加 ... -
算法复习之贪心算法之poj 1323
2012-08-07 16:27 1201题意:一次card比赛,有m个参赛者(包括你),每个参赛者有n ... -
算法复习之贪心算法poj2586
2012-08-07 15:40 1183题意:对于MS Inc来说,每个月如果盈利则必盈利sur,如果 ... -
算法复习之贪心算法 poj 1328
2012-08-07 15:14 10146题意:地图的x轴的上方为海,下方为陆地,海中有n个小岛,坐标为 ... -
字典树学习材料
2012-05-30 14:29 934字典树,又称单词查找树,Trie树,是一种树形结构,典型应 ... -
poj 1159
2012-05-28 19:08 1398题目大意:给你一段字符串,让你求出在中间最少加入几个字符 ... -
poj 3176
2012-05-28 14:47 977大致题意: 输入一个n层的三角形,第i层有i个数,求从第 ... -
poj 1260
2012-05-28 09:54 1572题意解释: 有n个等级的珠宝,等级依次升高,等级越高价钱越高 ... -
poj 1836
2012-05-28 09:22 2673是POJ2533的扩展题。题意不难,令到原队列 ... -
poj 2533
2012-05-26 15:36 1207在做这道题目之前,首先让我们了解一下什么是LIS算法,LIS俗 ... -
poj 3267
2012-05-26 09:43 776从程序可以看出,第i个位置到L所删除的字符数,总是先取最坏情况 ... -
poj 1276
2012-05-25 16:20 2351题意: 这道题的意思是给你一堆钱,各种面值的都有,比 ... -
poj 1094
2012-05-25 13:54 1062题意:给出字母个数,和有限个有序对(a<b)求出能确定字 ... -
poj 3393
2012-05-23 17:00 1227大致题意: 科普文一篇,文章80%都是无用信息,因为 ... -
poj 3007
2012-05-14 10:21 949大致题意: 给定一个字符串,从任意位置把它切为两半, ...
相关推荐
北大POJ3122-Pie 解题报告+AC代码
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
北大POJ1159-Palindrome 解题报告+AC代码
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
poj分类poj分类poj分类poj分类
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
北大POJ2002-Squares 解题报告+AC代码
POJ1503解答 POJ1503解答,正确答案(已通过POJ)
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
POJ1048,加强版的约瑟夫问题 难度中等
POJ1083的代码,POJ1083的代码,POJ1083的代码
poj 百练 题目分类 poj 百练 题目分类
POJ上的一道题目,自己写的代码,因为想下载别人的, 所以就放上了。
poj 1001答案
POJ2968代码有用,欢迎下载,POJ代码
Poj中一些题目的源代码,里面共有二十多道题目,OI