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 - 二分查找)
分蛋糕 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/C Description My birthd ...
- POJ3122 Pie(二分)
题目链接:http://poj.org/problem?id=3122 题意:一堆人分蛋糕,每人蛋糕大小一样,求最大能分多少,蛋糕必须是整块整块的,不能两块拼一起.然后注意输入F个人最后要分F+1份. ...
- CCF CSP 201703-1 分蛋糕
题目链接:http://118.190.20.162/view.page?gpid=T57 问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0 ...
- hnust 分蛋糕
问题 B: 分蛋糕 时间限制: 1 Sec 内存限制: 128 MB提交: 2430 解决: 966[提交][状态][讨论版] 题目描述 今天是DK生日,由于DK的朋友很多,所以DK在蛋糕店定制了 ...
- 周赛Problem 1021: 分蛋糕(埃拉托斯特尼筛法)
Problem 1021: 分蛋糕 Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: %lld ...
- CCF201703-1 分蛋糕 java(100分)
试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别 ...
- CCF 2017-03-1 分蛋糕
CCF 2017-03-1 分蛋糕 题目 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, -, an.小明想分给每个朋友至少重量为k的蛋糕.小 ...
- 「JOI 2015 Final」分蛋糕 2
「JOI 2015 Final」分蛋糕 2 题解 这道题让我想起了新年趣事之红包这道DP题,这道题和那道题推出来之后的做法是一样的. 我们可以定义dp[i][len][1] 表示从第i块逆时针数len ...
- 南理第八届校赛同步赛-F sequence//贪心算法&二分查找优化
题目大意:求一个序列中不严格单调递增的子序列的最小数目(子序列之间没有交叉). 这题证明贪心法可行的时候,可以发现和求最长递减子序列的长度是同一个方法,只是思考的角度不同,具体证明并不是很清楚,这里就 ...
随机推荐
- golang——net/rpc包学习
1.rpc包 rpc包提供了通过网络或其他I/O连接对一个对象的导出方法的访问. 只有满足如下标准的方法才能用于远程访问,其余方法会被忽略: (1)方法是导出的(2)方法有两个参数,都是导出类型或内建 ...
- 如何在 Istio 中支持 Dubbo、Thrift、Redis 以及任何七层协议?
赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher管理委员,Istio 项目贡献者, Aerika 项目创建者 ,热衷于开源.网络和云计算.目前主要从事服务网格的开源和研发 ...
- 使用代码生成工具快速开发ABP框架项目
在一般系统开发中,我们一般要借助于高度定制化的代码生成工具,用于统一代码风,节省开发时间,提高开发效率.不同的项目,它的项目不同分层的基类定义不同,我们需要在框架基类的基础上扩展我们的业务类代码,尽量 ...
- android底部导航栏小结
android自带的有TabHost,但好像无法满足要求, 本文只记录使用 TabLayout + Fragment 和 android 自带的 BottomNavigationView + Fra ...
- 将表单数据转换成json字符串
$("#theForm").serialize(); 可以获取表单的数据,但是是json字符串 需要转换成json才能正常使用
- 对Java异常的理解
JAVA小白手写总结 提示:本篇简单列举了一些Java中的异常与异常处理 前言 提示:很多小伙伴们都会问到,什么是异常呢,又该怎么解决呢? 下面我们就从下面的一个案例中切入今天的内容. 提示:以下是本 ...
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- reverse ey-or
ey-or 32c3ctf-2015 https://blukat29.github.io/2015/12/32c3ctf-ey_or/ mark, 好自闭呀,0.0 32C3_wE_kNoW_EvE ...
- Java基础知识-简明阐述双亲委派机制及作用
1.双亲委派机制及作用 1.1 什么是双亲委派机制 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类 ...
- java中ReentrantLock核心源码详解
ReentrantLock简介 ReentrantLock是一个可重入且独占式的锁,它具有与使用synchronized监视器锁相同的基本行为和语义,但与synchronized关键字相比,它更灵活. ...