10690 分面包

该题有题解

时间限制:1000MS  内存限制:65535K
提交次数:90 通过次数:29

题型: 编程题   语言: G++;GCC

Description

在大一的时候,XCC还在stu union打酱油~~~~和十三还有奶子他们去外面吃吃喝喝是常有的事。
大家都知道空腹喝酒是有害肚子滴,所以呢,要买一些面包来下酒。不过我们有个习惯,
就是所有的n个人,每个人分得的面包必须长度相等(长度相等的面包的量是一样的),
同时捏~给每个人分面包时,分得的小面包必须是来自同一块面包的,即不能把两个不同面包各切一部分下来凑合成一份面包来分。
现在一起来的有n个人,买了m个面包,求每人分得的最长面包长度。

输入格式

第一行是人数 n 和面包数目 m (3<= n <= 16 , 1 <= m <= 100),第二行 m 个数字表示 m 个面包的长度 L ,均为整数( 1 <= L <= 1000000)

输出格式

每人分得的最长面包长度,保留2位小数

输入样例

3  3
3  3  3

输出样例

3.00

提示

注意题目描述

来源

scau_acm

题意:m个不同长度的面包分给n个人,每个人分得的面包长度相等,求最长每人能分多少。注意:面包不能是几块小面包拼成的面包,只能是整一块,或者由整一块分成的小面包。
解题思路:这道题要求用二分查找,其实思路很好想到,求每人最多能分多少,只要将这个最长能分的长度作为二分查找的值就OK了。对于每个二分查找的猜测值,只需要判断以这个值作为分面包的长度所分得的小面包数量是否大于人数(这句话有点绕,多看几遍吧orz,表达能力捉急),如果大于等于人数,说明分的小面包过多,也就是长度太小,就将左边界移到上一个猜测值,如果小于人数,说明分的小面包不够多,也就是长度过大,就将二分查找的右边界减小到上一个猜测值。

以下的小面包表示分后的面包orz

#include <iostream>
#include <cstdio>
using namespace std;int main()
{int n,m,i;double max=0;double L[105];scanf("%d%d",&n,&m);for(i=0;i<m;i++){scanf("%lf",&L[i]);if(max<L[i]) max=L[i];}double l,r;l=max/n;//小面包的最小可能长度r=max;//小面包的最大可能长度int cnt=0;double mid=l+(r-l)/2;;while(r-l>0.001){ //二分查找最大能分的长度mid = l+(r-l)/2;  //这就相当于(i+r)/2,不过可以防止(l+r)过大溢出int的范围,虽然这里的l和r都是double,并不会溢出hhh(但这样写是好习惯的说)cnt=0; //cnt为该长度下能分得的小面包for(i=0;i<m;i++){//对每个面包都以给定长度分成小面包,看能分出几个cnt+=(int)(L[i]/mid);//向下取整}if(cnt>=n) l=mid;//面包太短else r=mid;//面包太长}printf("%.2lf",mid);return 0;
}

SCAU10690 分面包相关推荐

  1. vb只显示两位小数_【名师课堂】苏教数学五年级上3.1小数的意义

    微课视频第一课时 微课视频第二课时 电子课本 同步练习 参考答案 教学设计 小数的意义和读.写方法教材第30~32页的内容.1.使学生理解小数的意义.2.结合具体情境教学小数的意义,让学生初步认识小数 ...

  2. 450g吐司烘烤温度_教你一手如何判断吐司面包是否烤熟

     近来还是有很多博友请求加好友,实在不好意思,我的好友人数已满.请大家加我为关注或者关注我的微博都可以,那样看的时候就非常方便了.谢谢大家的支持. 吐司面包大家都做过,口感有很多种,很受大家的欢迎.但 ...

  3. 剁馅机器人图片_黄金手撕面包培训图片信得过的工艺利润高

    使得和好的面团放气分割成一样的等份.使将用料的母鸡蛋拌之成为全蛋液,咖喱包挨次尤为均匀沾裹上生面粉全蛋液面包面高筋面粉. 使将脆酥面之皮柿子胡萝卜各自切成条丁,打开火点燃添加饮用水,使将胡萝卜丢入过一 ...

  4. 【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++

    题目 给两个字符串,一个是卖的,一个是想买的. 你需要统计一下,看是不是卖的包含想买的. 如果包含,则YES,并输出多余的个数. 如果不包含,则No,并输出缺少的个数. 思路 维护两个数组,分别是已经 ...

  5. 分披萨问题_比萨问题–建造者与装饰者

    分披萨问题 问题陈述 我们需要为一家披萨公司构建软件,该公司想要准备不同类型的披萨,例如鸡肉披萨,扁平面包,意大利辣香肠披萨和特制奶酪,并在上面放些配料. 让我们尝试看看哪种设计模式适合该问题说明以及 ...

  6. element实现动态路由+面包屑

    要掌握:localStorage,组件封装 ​​​​ emm,第一次上传视频转gif的图片,效果不咋好... 视频转gif 的软件连接 http://www.zxt2007.com/downloads ...

  7. 先出报表还是先计提所得税_一道大综合题搞定“与子公司的内部交易合并报表抵销分录”的逻辑...

    有小朋友私信问我一道选择题,关于对子公司长期股权投资,存在内部交易时,合并报表抵销分录的问题.在跟她沟通的过程中,我了解到好多同学并不清楚单体报表,和母公司合并报表之间的关系,这导致大家很容易死记硬背 ...

  8. 用面包分析数学定律,数学老师成网红

    这几天,长沙理工大学谭艳祥老师走红网络,在微博上关于他的故事阅读量超过1.2亿(请扫右上角二维码查看相关视频). 谭老师的同学们纷纷奔走相告这一"喜讯",大家笑称,谭老师干什么事都 ...

  9. rsa 返回值 验签 失败_解析蛋糕、面包制作失败的原因

    其实这些问题的答案大多都隐藏在 搅拌盘.烤炉和烤盘中 掌握好这些基础知识 就能告别这些常见的失误 01 ﹏ ﹏ ﹏ 好的蛋糕始于搅拌盘 做蛋糕的过程实质上是化学变化的过程,一系列的配料遵照严格的顺序倒 ...

最新文章

  1. 实习生笔试面试题总结
  2. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
  3. VC6如何使用VS2005中的CImage类功能
  4. python游戏-练习项目19:使用python制作游戏(上)
  5. SAP的标准对话框函数
  6. virtualbox安装linux教程 光驱启动进入grub,VirtualBox下GRUB硬盘安装Linux Mint和 Arch Linux的实践...
  7. Oracle入门(十四H)之良好的编程实践
  8. android studio电影院选座,8排电影院选座最佳位置
  9. 企业库(V4.1)入门学习手记
  10. 数据结构 10分钟让你掌握经典排序(二)
  11. 力扣-53 最大子序和
  12. java 中文字符串 排序_Java实现对中文字符串的排序功能实例代码
  13. docker 运行 php nginx_使用docker运行nginx
  14. 关于 c++ opencv [ INFO:0] global c:\build\master_winpack-build-win64-vc15\***
  15. Week 10 homework
  16. 如何获取Windows 10的旧默认桌面背景
  17. 图片转pdf怎么转?怎么在电脑上把图片转成pdf?
  18. HTC IMEI码或SN码查询地址
  19. Wargames(一)
  20. matlab nntool 使用步骤: (以p4.3 为例),Matlab_nntool_应用实例

热门文章

  1. Cuckoo沙箱安装步骤
  2. php gtk中文介绍,学习php-gtk2之hello world
  3. STM32用IIC实现EEPROM的读写
  4. MATLAB散点密度图的画法三
  5. Java基础知识 廖雪峰教程笔记
  6. XD交互原型能导出html,设计师必学!教你用Adobe Xd轻松做原型设计
  7. la是什么牌子_la是什么牌子 La Prairie莱珀妮品牌护肤品怎么样
  8. PyGmae:有限状态机实践(十一)
  9. 权限管理——用户认证和用户授权
  10. RocketMQ常见问题-消息重复消费和消息重复的问题