腾讯----贪吃的小Q

文章目录

  • 腾讯----贪吃的小Q
  • 一、题目描述
  • 二、分析
  • 三、代码

一、题目描述

小Q的父母要出差N天,走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力

输入描述:

每个输入包含一个测试用例。
每个测试用例的第一行包含两个正整数,表示父母出差的天数N(N<=50000)
和巧克力的数量M(N<=M<=100000)。

输出描述:

输出一个数表示小Q第一天最多能吃多少块巧克力。

输入例子1:

3 7

输出例子1:

4

二、分析

  • 首先我们可能会想到从最后一天吃的巧克力的数量来往前反推第一天吃巧克力的数量,但是我们并没有一个合适的值来进行反推,所以直接pass掉

  • 那么我们就只能在第一天下手,我们就 枚举第一天所有可能吃掉的巧克力的数量,然后根据每个数量计算N天一共吃掉的巧克力的数量和M块巧克力的数量进行比较

  • 如果从[1....M]逐个进行枚举,那么肯定是可以的,但是效率比较低,那么什么方法适合这种枚举的场景呢----->二分查找二分查找详解

  • 举例:

n=3 m=7我们有七块巧克力1 2 3 4 5 6 7首先我们找到中间位置的巧克力个数(向上取整,因为没有3.5个巧克力)(1+7+1)/2=4就是4位置的巧克力然后我们以它作为第一天的起始巧克力个数对这些天所需要的总巧克力个数进行求和,
最终的结果总巧克力数目如果等于m那么直接返回4,如果小于m,那么可能存在
更优的解在[5,7]区间内,那么需要在5位置到7位置中间位置继续做相同的操作。如果大于m,那么证明我们第一天给的巧克力的数目太多了,需要在[1-3]区间内继续找合适的解。

三、代码

#include<iostream>
using namespace std;//n代表天数,m代表巧克力的数量
int n, m;//函数用来求第一天吃mid块巧克力,根据题意N天共吃掉巧克力的数量
int sum(int &mid)
{int tmp = mid;int total = tmp;for (int i = 0; i < n -1; ++i){tmp = (tmp + 1) / 2;total += tmp;}return total;
}int fun()
{int l = 1;int r = m;while (l <= r){int mid = (l + r + 1) / 2;int bool_int = sum(mid);if (bool_int == m){return mid;}else if (bool_int < m){l = mid + 1;}else{r = mid - 1;}}return r;}
int main()
{cin >> n >> m;cout << fun() << endl;return 0;
}

腾讯----贪吃的小Q相关推荐

  1. 18935 贪吃的小Q

    18935 贪吃的小Q Description 腾讯2018春招技术类编程题 小Q的父母要出差N天,走之前给小Q留下了M块巧克力. 小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回 ...

  2. SCAU 18935 贪吃的小Q

    SCAU 18935 贪吃的小Q 思路:从别人那发现的,就是从最后一天开始按照吃的数量加倍的方法,找到最后一天吃的最小数目,然后减去这一天的数目.将剩余的问题化作n-1天情况下的同类问题,循环n次即可 ...

  3. 腾讯笔试编程题,贪吃的小Q(二分查找)

    问题描述 小Q的父母要出差N天,走之前给小Q留下了M块巧克力.小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力. 输入描 ...

  4. 腾讯笔试:小Q穿越怪兽谷问题

    题目描述 小Q打算穿越怪兽谷.他不会打怪,但是他有钱(笑~*´∀`).他知道,只要给怪兽一定的金币,怪兽就会一直护送着他出谷. 在谷中,他会依次遇见N之怪兽,每只怪兽都有自己的武力值和要"贿 ...

  5. android 小q机器人,腾讯小Q机器人第二代,是机器人也是家人

    原标题:腾讯小Q机器人第二代,是机器人也是家人 近年来,各种智能产品如雨后春笋般层出不穷,尤其是打着家庭陪伴名头的智能机器人,更是孩子和家长眼中的新宠.前不久腾讯发布的小Q机器人第二代,更是掀起一阵智 ...

  6. 腾讯----小Q的歌单

    腾讯----小Q的歌单 文章目录 腾讯----小Q的歌单 一.题目描述 二.分析 方法一:组合 方法二:动规 一.题目描述 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成 ...

  7. 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流 ---好水!!...

    我以为我会是最坚强的那一个 我还是高估了自己 我以为你会是最无情的那一个 还是我贬低了自己 就算不能够在一起 我还是为你担心 就算你可能听不清 也代表我的心意 那北极星的眼泪 闪过你曾经的眼角迷离 那 ...

  8. 长隆大马戏机器人_腾讯长隆打造智能主题酒店 小Q机器人全面部署智慧旅游

    原标题:腾讯长隆打造智能主题酒店 小Q机器人全面部署智慧旅游 作为国内互联网行业最具知名度的品牌形象,腾讯QQ那只胖胖的企鹅可以说是陪伴几代人的互联网启蒙.就在前不久,腾讯与长隆集团达成战略合作,联合 ...

  9. 大数据24小时:地质局发布地质大数据共享平台,科大讯飞将语音识别植入腾讯小Q机器人

    地质调查局发布首个地质大数据共享服务平台"地质云":华为与华制智能合作,共同发布制造业解决方案"智造云":科大讯飞与腾讯联手,将语音识别技术植入腾讯小Q机器人- ...

最新文章

  1. 共享可写节包含重定位_艾瑞咨询:2020年数说双11电商购物节报告
  2. 详解CorelDRAW中如何合并与拆分对象
  3. MATLAB优化算法(一)
  4. mysql 之 sql管理数据 二
  5. 小米android版本升级包下载,小米11 Android 12 Beta 1更新包
  6. Win10 无法保存对hosts权限所作的更改 拒绝访问
  7. linux NVMe驱动总结
  8. 股票历史数据-A股所有股票历史数据下载
  9. win 10 桌面路径还原到C盘拒绝访问
  10. 诸葛——如何摆脱APP速死症?
  11. word2003和word2007如何添加和删除脚注
  12. ubuntu16.04安装GTX-960M nvidia-384驱动
  13. 先学vba还是python-以Excel处理为目的学习python还是VBA?
  14. mapxtreme 标注的强调显示
  15. Thinkpad安装系统后,在设备管理器中有一其他设备叹号为“PCI 数据捕获和信号处理控制器”...
  16. 789 逃脱阻碍者
  17. VBA小代码-语句-使用VBA取消Excel的筛选状态
  18. 如何正确使用计算机(维护),关于电脑如何正确使用与维护硬盘
  19. 计算机中文输入法教案,中文输入法(一教案.doc
  20. 实现了 Android 设备之间通过 Wifi 传输文件的功能

热门文章

  1. =在php中,PHPExcel在PHP7中,save(‘php://output’)出现ERR_INVALID_RESPONSE错误的解决方法...
  2. 2d shader unity 阴影_Unity中实现2D光照系统
  3. 【小题目】输入三个数字表示年月日,输出这一天在这一年是第几天
  4. DoD模型与OSI模型的关系及其协议对应关系
  5. 国内传感器市场也许正处在最好的时候
  6. ASP.NET WebAPI Get和Post 传参总结
  7. LELE的RPG难题
  8. Windows2003 SQL2005解决系统Administrator密码不知道的问题
  9. CodeForces - 1494E A-Z Graph(构造+思维)
  10. 中石油训练赛 - Plan B(点双缩点+树形dp)