BZOJ-1192-鬼谷子的钱袋
来源:互联网 发布:淘宝恶意退款不退货 编辑:程序博客网 时间:2024/04/28 16:35
描述
鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。鬼谷子也是一个非常节俭的人,他想方设法使自己在满足上述要求的前提下,所用的钱袋数最少,并且不有两个钱袋装有相同的大于1的金币数。假设他有m个金币,你能猜到他会用多少个钱袋,并且每个钱袋装多少个金币吗?
分析
- 可能有点水, 但这种题做的很少, 还是练习一下比较好
- 考虑二进制
- 任何数都可用2的幂次方加和得到.
- 那么把m个金币拆成几个2的幂次方的数就可以凑出任何 1~m 之间的数了. 但是不一定会正好, 把剩下的钱拆成单独一份, 答案就是第一个大于m的2^n的那个n. 那如果正好拆完呢? 因为最后一份不可以是m, 所以还是要把m拆开, 结果还是一样.
- 为什么是二进制不是其他进制呢? 因为任何数都可用2的幂次方加和得到. 但其他的就不一定了.
代码
https://code.csdn.net/snippets/612326
2 0
- BZOJ-1192-鬼谷子的钱袋
- BZOJ 1192, 鬼谷子的钱袋
- BZOJ 1192-鬼谷子的钱袋
- BZOJ 1192 [HNOI2006] 鬼谷子的钱袋 题解
- BZOJ 1192 [HNOI2006] 鬼谷子的钱袋 题解
- BZOJ 1192 鬼谷子的钱袋(二进制)
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋
- BZOJ 1192 [HNOI2006]鬼谷子的钱袋
- 【BZOJ 1192】[HNOI2006]鬼谷子的钱袋
- bzoj 1192: [HNOI2006]鬼谷子的钱袋
- 【bzoj 1192】 [HNOI2006]鬼谷子的钱袋
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋
- [BZOJ]1192: [HNOI2006]鬼谷子的钱袋
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋
- bzoj 1192: [HNOI2006]鬼谷子的钱袋
- BZOJ[1192]鬼谷子的钱袋 乱搞
- BZOJ-1192 鬼谷子的钱袋 2^n有关数论
- bzoj 1192: [HNOI2006]鬼谷子的钱袋 (数论)
- 图解JS框架教程
- Android 数据库升级完整解决方案
- 如何定义和获得资源arrays.xml中的数组
- 如何改变pv none none状态?
- PYTHON 写入list并换行的方法
- BZOJ-1192-鬼谷子的钱袋
- python转义字符的使用
- overflow 滚动条设置
- Linux find命令选项
- 关于arcgis安装问题的解决方案
- 【转】MyEclipse快捷键大全
- 7.3.2 快速排序
- 监控Goldengate状态
- 将Java的class文件转为EXE文件的八种方法