POJ3122贪心或者二分(分蛋糕)
题意:
m+1个人来分n个蛋糕,每个人分到的蛋糕数必须一样而且还必须是同一个蛋糕上的,问每个人最多分多少蛋糕?
思路:
能想到的方法有两种,一个是直接贪心,另一个就是二分,这个题目之前做过,用的是二分,但不知道为啥这次看到的时候,没感觉。也没去想二分,直接自己想了一个贪心的策略然后就AC了,先说贪心,贪心我们可以一个一个人的去分,每个人来的时候就在当前状态中选择一个蛋糕如果把它加到分这个蛋糕的人中后是加到所有别的蛋糕后每人得到最大的,感觉很别扭,说不清楚,直接看下面代码把,其实很容易理解,然后在说说二分的解法,我没去敲,以前用二分解过这个题目,就是枚举答案,对于每一个枚举的答案我们可以去算当前答案能得到的最多蛋糕数,就是相除取整然后相加,根据这个和来决定二分的走向,看讨论说这个题目卡精度卡的很严格,我没啥感觉,因为我的π用的是这个PI=acos(-1.0),所以没被卡到。下面是贪心的代码,二分的没写。
#include<math.h>
#include<queue>
#include<stdio.h>
#include<string.h>
#include<algorithm>using namespace std;typedef struct NODE
{int p;double sum ,per;friend bool operator < (NODE a ,NODE b){return a.per < b.per;}
}NODE;NODE node[11000];
NODE xin ,tou;int main ()
{int t ,n ,m ,i;double PI=acos(-1.0);double r;scanf("%d" ,&t);while(t--){scanf("%d %d" ,&n ,&m);priority_queue<NODE>q;for(i = 1 ;i <= n ;i ++){scanf("%lf" ,&r);node[i].per = node[i].sum = PI * r * r;node[i].p = 1;q.push(node[i]);}m ++;double Ans = 1000000000;while(m--){tou = q.top();q.pop();if(Ans > tou.per) Ans = tou.per;tou.p ++;tou.per = tou.sum / tou.p;q.push(tou);}printf("%.4lf\n",Ans);}return 0;
}
POJ3122贪心或者二分(分蛋糕)相关推荐
- c语言分蛋糕均匀正方形,分蛋糕(C - 二分查找)
分蛋糕 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/C Description My birthd ...
- 算法训练一(贪心、二分)(含解题思路)(上)
目录 7-1最少失约(贪心) AC代码: 7-2删数问题(贪心) 7-3区间覆盖(贪心) AC代码: 7-7加油站之最小加油次数(贪心+优先队列) AC代码: 7-8求解删数问题(贪心) AC代码: ...
- 算法训练一(贪心、二分)(含解题思路)(下)
目录 7-15种树(贪心) AC代码: 7-16会场安排问题(贪心) AC代码: 7-17最优合并问题(贪心) AC代码: 7-18简简单单的数学题(位运算 + 哈希表) AC代码: 7-19h148 ...
- CCF-CSP 201703-1 试题名称: 分蛋糕
问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n) ...
- CSP认证201703-1 分蛋糕[C++题解]:遍历
题目分析 来源:acwing 分析: 本题要求是按照编号从小到大分蛋糕,不是按照蛋糕质量从小到大,读题的时候一定要小心. 编号从小到大的话,直接遍历即可,使用while来判断是否小于k,跳出while ...
- CCF - 201703-1 - 分蛋糕
问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 小明今天生日,他有n块蛋糕要分给朋友们吃,这n ...
- CCF201703-1 分蛋糕
试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a 1, ...
- CCF CSP 201703-1 分蛋糕
题目链接:http://118.190.20.162/view.page?gpid=T57 问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB ...
- CCF201703-1 分蛋糕(100分)【序列处理】
试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别 ...
最新文章
- HBuilder离线打包启用Chrome Inspect调试
- 编译安装SVN不结合apache
- 2017 年最流行的 15 个数据科学 Python 库
- nn.Conv2d中padding详解【pytorch学习】
- 计算机微格教学心得体会,微格教学心得体会
- SpringBoot实战(五)之Thymeleaf
- 【链表+启发式合并】Bzoj1483 [HNOI2009] 梦幻布丁
- set_bit() 等位函数分析! \linux-1.0\linux\include\asm\bitops.h
- 数学之美:嵌入式编程凹凸性之妙用(附C代码)
- 语义slam_语义SLAM: 接轨深度学习的新方向
- 通配符星号(*)和问号(?)的区别
- 杭电计算机组成原理实验RISC-V 实验 实现运算及传送指令的CPU设计实验 实现访存指令的CPU设计实验 实现转移指令的CPU设计实验
- 卡卡云模板(适配彩虹发卡系统)
- 计算机exo乐谱,History钢琴简谱-数字双手-EXO
- 基于PHP+MySQL动漫周边商城销售网站的开发与设计
- idea配置tomcat
- android开发实名认证弹窗,fusionAAS-android-demo
- 保险基本概念测试人员须知(一)
- PHP相关系列 - XSS相关
- 最遗憾的8所大学!具有211实力,却错失头衔!