题目链接:

https://www.lydsy.com/JudgeOnline/problem.php?id=1192

题目:

Description

鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。鬼谷子也是一个非常节俭的人,他想方设法使自己在满足上述要求的前提下,所用的钱袋数最少,并且不有两个钱袋装有相同的大于1的金币数。假设他有m个金币,你能猜到他会用多少个钱袋,并且每个钱袋装多少个金币吗?

Input

包含一个整数,表示鬼谷子现有的总的金币数目m。其中,1≤m ≤1000000000。

Output

只有一个整数h,表示所用钱袋个数

Sample Input

3

Sample Output

2

题目大意:

中文题,大概就是说给你一个数,让你把它差分成几个部分,使得这些部分能够组成任何一个小于等于n的数。

题目分析:

首先,能够表示任意的数 0.0 额 想到了什么?对,就是2进制,2进制数。任何一个数都有其对应的2进制的形式,并且每一位上非0即1。所以我们就可以按照2进制的方式组合形成任意一个数字。比如1011010就可以有1000000 + 10000 +1000 + 10 组合而成。也就是说如果我们有了 1000 100 10 1 就可以组成小于 1111 的任何的数字。

所以,对于这个题目,我们应该怎么办呢?

首先,我们要把这个数分成两部分 一部分化成2进制是全1的序列,另一部分就是剩下的部分。分好之后,我们来分析一下,是不是可以表示所有的数?首先  < 全1那部分的数,可以按照方才所说的那种方式组合。那 > 全1那部分的数呢?因为 全1那部分的数 > 剩下的数(易证 设这个数为x,并且 2^(n) -1< x < 2^(n-1) -1 则又 2^(n)-2^(n-1) = 2^(n-1) )。所以 > 全1那部分的数 就可以先去掉一个剩下的数,然后在按照刚才的方式组合。

说起来麻烦,思考一下就明白,其实就是以2为底的n的对数(向下取整)+1。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>using namespace std;int main()
{int n;cin>>n;cout<<(int)log2(n)+1<<endl;return 0;
}

HYSBZ - 1192 鬼谷子的钱袋 (思维)相关推荐

  1. BZOJ 1192 鬼谷子的钱袋 数论

    1192:鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1926  Solved: 1417 题目连接 http://www.lyds ...

  2. 洛谷 P2320 [HNOI2006]鬼谷子的钱袋 思维+二进制

    https://www.luogu.org/problem/P2320 题目描述 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政. 有一天,他在咸阳游历的时候,朋友告诉 ...

  3. BZOJ 1192 [HNOI2006]鬼谷子的钱袋 (思维)

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4650  Solved: 3242 [Submit][ ...

  4. BZOJ 1192: [HNOI2006]鬼谷子的钱袋【二进制】

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec Memory Limit: 162 MB [题目描述] 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派 ...

  5. 1192: [HNOI2006]鬼谷子的钱袋

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3530  Solved: 2575 [Submit][ ...

  6. bzoj1992鬼谷子的钱袋(二分乱搞 二进制)

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3223  Solved: 2333 Descripti ...

  7. bzoj1192 [HNOI2006]鬼谷子的钱袋

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2443  Solved: 1785 [Submit][ ...

  8. 【HYSBZ - 1192】鬼谷子的钱袋(水题,二进制)

    题干: 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极 ...

  9. 1192. [HNOI2006]鬼谷子的钱袋【进制】

    Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一 ...

最新文章

  1. 计算机二级怎么更改报名密码忘记了怎么办,中考报名系统密码忘了怎么办
  2. java close 方法,用Layman的术语解释Java中的close()方法
  3. kibana安装步骤
  4. OpenCV 凸包Convex Hull
  5. INamingContainer接口解决多个自定义控件ID冲突
  6. deepin安装卡死在蓝色背景_求大神帮助~安装DEEPIN系统卡在蓝色背景图什么原因...
  7. 汇编语言(二十六)之自然数求和
  8. 【送给Git初学者】
  9. UNICODE字符集
  10. 前端学习(2966):上午回顾
  11. 《软件需求分析(第二版)》第 13 章——需求开发面临的特殊难题 重点部分总结
  12. flex producer java_在 Logic Pro 中选取 Flex 与跟随设置
  13. java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望
  14. 如何修改Window系统下PATH路径
  15. 【重点!记忆化递归+DP】LeetCode 72. Edit Distance
  16. Matlab-rmdir函数无法删除文件夹解决方案
  17. Unity 混音器AudioMixer使用注意
  18. 物理层-计算机网络知识汇总(二)|Zam9036博客
  19. 软件行业迎来拐点 厂商积极拥抱SaaS和云计算
  20. 探索“吴家路径”:一条带动村民共同富裕,有效促乡村善安治之路

热门文章

  1. imagepng或imagejpeg浏览器无显示问题
  2. MQTT服务端与客户端
  3. 深入理解maven构建生命周期和各种plugin插件
  4. JMU软件20 形式化建模与分析复习
  5. 【银河麒麟V10】【服务器】麒麟容器常见问题
  6. word设置奇偶页面
  7. photoshop教程:ps修改边界的使用和描边的区别
  8. python 格式化时间含中文报错
  9. Python格式化工具yapf
  10. 【docker】为什么docker无法删除容器,删除容器命令