题意:

       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贪心或者二分(分蛋糕)的更多相关文章

  1. 分蛋糕(C - 二分查找)

    分蛋糕 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/C Description My birthd ...

  2. POJ3122 Pie(二分)

    题目链接:http://poj.org/problem?id=3122 题意:一堆人分蛋糕,每人蛋糕大小一样,求最大能分多少,蛋糕必须是整块整块的,不能两块拼一起.然后注意输入F个人最后要分F+1份. ...

  3. CCF CSP 201703-1 分蛋糕

    题目链接:http://118.190.20.162/view.page?gpid=T57   问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0 ...

  4. hnust 分蛋糕

    问题 B: 分蛋糕 时间限制: 1 Sec  内存限制: 128 MB提交: 2430  解决: 966[提交][状态][讨论版] 题目描述 今天是DK生日,由于DK的朋友很多,所以DK在蛋糕店定制了 ...

  5. 周赛Problem 1021: 分蛋糕(埃拉托斯特尼筛法)

    Problem 1021: 分蛋糕 Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format:  %lld  ...

  6. CCF201703-1 分蛋糕 java(100分)

    试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别 ...

  7. CCF 2017-03-1 分蛋糕

    CCF 2017-03-1 分蛋糕 题目 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, -, an.小明想分给每个朋友至少重量为k的蛋糕.小 ...

  8. 「JOI 2015 Final」分蛋糕 2

    「JOI 2015 Final」分蛋糕 2 题解 这道题让我想起了新年趣事之红包这道DP题,这道题和那道题推出来之后的做法是一样的. 我们可以定义dp[i][len][1] 表示从第i块逆时针数len ...

  9. 南理第八届校赛同步赛-F sequence//贪心算法&二分查找优化

    题目大意:求一个序列中不严格单调递增的子序列的最小数目(子序列之间没有交叉). 这题证明贪心法可行的时候,可以发现和求最长递减子序列的长度是同一个方法,只是思考的角度不同,具体证明并不是很清楚,这里就 ...

随机推荐

  1. pytorch(09)transform模块(基础)

    transforms transforms运行机制 torchvision.transforms:常用的图像预处理方法 torchvision.datasets:常用数据及的dataset实现,mni ...

  2. Why系列:谨慎使用delete

    题外话 这里大家可能要笑了,这不就一个操作符吗,还用单独来讲. 有这时间,还不如去看看react源码,vue源码. 我说:react源码会去看的,但是这个也很重要. delete你了解多少 这里提几个 ...

  3. 单链表及基本操作(C语言)

    #include <stdio.h> #include <stdlib.h> /** * 含头节点单链表定义及基本操作 */ //基本操作函数用到的状态码 #define TR ...

  4. HDU_5414 CRB and String 【字符串】

    一.题目 CRB and String 二.分析 对于这题,读懂题意非常重要. 题目的意思是在$s$的基础上,按题目中所描述的步骤,即在$s$中任意选择一个字符$c$,在这个字符后面添加一个不等于$c ...

  5. Vue中去除文本框回车默认事件

    使用v-on:keydown.enter.prevent即可 <input type="password" class="form-control" id ...

  6. gsoap多wsdl集成

    gsoap常规用法: 通过wsdl文件创建头文件 //通过wsdl文件创建头文件 wsdl2h [options] -o file.h ... WSDL and XSD files or URLs t ...

  7. python中gzip模块的使用

    gzip模块能够直接压缩和解压缩bytes-like类型的数据,同时也能实现对应格式文件的压缩与解压缩 一.数据压缩与解压缩 压缩 函数-gzip.compress(data, compresslev ...

  8. 【linux】驱动-7-平台设备驱动

    目录 前言 7. 平台设备驱动 7.1 平台总线 7.1.1 平台总线注册和匹配方式 7.1.2 源码分析 7.2 平台设备 7.2.1 platform_device 7.2.2 设备信息 7.2. ...

  9. Redis 超详细自动管理Cluster集群工具上手 redis-trib.rb (多图,手把手)

    安装介绍 ​ redis-trib.rb是一款由Redis官方提供的集群管理工具,能够大量减少集群搭建的时间. ​ 除此之外,还能够简化集群的检查.槽迁徙.负载均衡等常见的运维操作,但是使用前必须要安 ...

  10. .NET 开源配置组件 AgileConfig 初体验

    介绍 在微服务大行其道的今天,系统会被拆分成多个模块,作为单独的服务运行,同时为了集中化管理,我们还需要日志中心,配置中心等,很多开发人员可能更熟悉 ApolloConfig,这个组件功能也很完善,d ...