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//贪心算法&二分查找优化
题目大意:求一个序列中不严格单调递增的子序列的最小数目(子序列之间没有交叉). 这题证明贪心法可行的时候,可以发现和求最长递减子序列的长度是同一个方法,只是思考的角度不同,具体证明并不是很清楚,这里就 ...
随机推荐
- postman接口测试之设置全局变量和设置环境变量和全局变量
一.概念 1.环境变量 就是接口的域名或IP地址. 2.全局变量 就是一个作用域为整个postman的变量. 二.使用场景 1.环境变量 在测试的过程中,经常会频繁切换环境,本地环境验证.发布到测试环 ...
- CVE-2017-7504-JBoss JMXInvokerServlet 反序列化
漏洞分析 https://paper.seebug.org/312/ 漏洞原理 这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的 ...
- FreeBSD 如何安装软件
1:概括FreeBSD捆绑了丰富的系统工具集合作为基础系统的一部分.此外,FreeBSD提供了两种用于安装第三方软件的补充技术:FreeBSD Ports Collection,用于从源代码安装,以及 ...
- C# 基础 - 日志捕获二使用 log4net
引入 log4net.dll 项目->添加->新建项->应用程序配置文件,命名为 log4net.config,并把属性的复制到输出目录设置为 如果较新则复制,后续客户端需要读取在 ...
- API管理工具
开源的api文档管理系统 api文档 php 在项目中,需要协同开发,所以会写许多API文档给其他同事,以前都是写一个简单的TXT文本或Word文档,口口相传,这种方式比较老土了,所以,需要有个api ...
- 一些比较好的国外IT网站
1.在线编程练习: LintCode --在线刷题网站,阶梯式训练,可帮助你更快速深入地了解各类面试题型,提供专业导师写的最优代码作为参考 (Lintcode 标准答案查询--lintcode 的参考 ...
- Min25筛求1-n内的素数和
1 //#include <bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include< ...
- python3 list合并
1 t1=[x for x in range(5)] 2 t2=[x for x in range(5,10)] 3 4 #way1:通过方法extend(),直接修改列表,无返回值 5 # t1.e ...
- 6、MyBatis教程之日志实现
7.日志实现 思考:我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题. 对于以 ...
- day03---Vue(04)
一.组件 组件(Component)是 Vue.js 最强大的功能之一. 组件可以扩展 HTML 元素,封装可重用的代码. 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界 ...