题目:

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

排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。鬼谷子也是一个非常节俭的人,他想方设法使自己在满足上述要求的前提下,所用的钱袋数最少,并且不有两个钱袋装有相同的大于1的金币数。假设他有m个金币,你能猜到他会用多少个钱袋,并且每个钱袋装多少个金币吗?

2进制是宝!!!

相传是最水的一道省选题,的确有点水,连我这种才学4个月的蒟蒻都会做。

任何数都可以转化成2进制,并且只有2进制的数转化为十进制时每位的权值乘一,而其他的进制不行,而这个特性恰好满足题意,也就是说任何一个数都可以有2的幂相加得到。于是,第一种方法就出来了:本人语文不好,只有边举例边讲解,拿10来举例,把10分解成2的幂相加,1+2+4=7,再加一个8和就超过十了,所以不能算上8,此时还剩个3,因为已经有1,2,4了,4代表的是2进制“千位”,所以二进制数“111”以内即7以内的数都可以表示出来了,因为还剩3,所以8,9,10也表示出来了。这种方法就是从最小的2的幂往上找,最后剩下的那个数如果不是2的幂,用一个钱袋装起来就是了,即钱袋总数log2(n)+1,如果最后剩的这个数恰好是某个2的幂,只用与这个幂一个+1另一个-1就对 了。2进制是最优解。

第二种解法:不断/2,这样求出的方案不是最优,但可以A,并且代码好写。

以下给出第二解法的代码。

#include<cstdio>
void wc(int n,int m)
{if(n==1)printf("%d\n",m+1);else wc(n/2,m+1);printf("%d ",n-n/2);
}
int main()
{int n;scanf("%d",&n);wc(n,0);return 0;
}

鬼谷子的钱袋-rqnoj-228相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. BZOJ-1192-[HNOI2006]鬼谷子的钱袋

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

  8. p2320bzoj1192 鬼谷子的钱袋

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

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

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

  10. luogu2320 鬼谷子的钱袋

    题目大意 鬼谷子决定将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账.求钱袋数最少,并且不有两个钱袋装有相同的大于1的金币数的装 ...

最新文章

  1. Android开发--浅谈ExpandableListActivity
  2. Linux 用inotify监听文件和目录
  3. 搜狗Q1每天进账1886万,输入法日处理6亿请求成中国最大语音App
  4. POJ 1398 Complete the sequence! ★ (差分)
  5. 科技T3国产平台!成功搭载“翼辉国产实时系统SylixOS”
  6. 内网穿透工具--NPS
  7. 基于51单片机ds18b20智能温控风扇Proteus仿真
  8. unity 模型销毁_Unity中销毁游戏对象的方式
  9. First-hitting-time model
  10. 图片太大,导致页面加载过慢的处理方法
  11. excel 数据不全
  12. 综合应用 -- 购物车
  13. mysql原理、索引、优化-【公司内部培训】
  14. 64B/66B编码技术
  15. 【软件测试】总结web自动化测试-selenium+python
  16. 非递归遍历二叉树实现
  17. 论文投稿指南——准研究生们建议早点发小论文
  18. C++ 11的移动语义 - 清晰的示例及浅显的说理
  19. 我的Mysql 使用小册
  20. 如何处理Vegas素材中的杂音

热门文章

  1. matlab青蓝色设置,青墨蓝染发概念和调配方式!
  2. PPT报告直接领,这份51页「大数据决策分析平台搭建方案」真的很值
  3. 怎么让footer始终在页面底部?
  4. #早安,努力#11.16
  5. 【图像识别】基于二维条形码识别matlab 源码含GUI
  6. 开源人脸识别系统compareface介绍
  7. 2016 php cms award,官方年度大奖公布 本站“与劳拉同行”摄影大赛获得2016年度最佳艺术活动组织奖...
  8. 请你帮我推荐一款性价比高的保险
  9. np.random.normal()
  10. 15.Vue的键盘事件