BZOJ1192: [HNOI2006]鬼谷子的钱袋

Description

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

Input

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

Output

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

Sample Input

3

Sample Output

2
不难想到二进制差分,依次放1、2、4、8、16……
#include<cstdio>
#include<cctype>
#include<queue>
#include<cmath>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i;i=next[i])
using namespace std;
const int BufferSize=1<<16;
char buffer[BufferSize],*head,*tail;
inline char Getchar() {if(head==tail) {int l=fread(buffer,1,BufferSize,stdin);tail=(head=buffer)+l;}return *head++;
}
inline int read() {int x=0,f=1;char c=getchar();for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;for(;isdigit(c);c=getchar()) x=x*10+c-'0';return x*f;
}
int main() {int n=read();rep(i,1,n) if(1<<i>n) {printf("%d\n",i);return 0;}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/wzj-is-a-juruo/p/5026700.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“睡服”面试官系列第十五篇之对象的扩展(建议收藏学习)

目录 1. 属性的简洁表示法 2. 属性名表达式 3. 方法的 name 属性 4. Object.is() 5. Object.assign() 5.1基本用法 5.2注意点 5.21.浅拷贝 5.2.2同名属性的替换 5.2.3数组的处理 5.2.4取值函数的处理 5.3常见用途 5.3.1为对象添加属性 5.3.2为对象添加方法 5.3…

前端后端接口那些事吐槽

今天与另一位前端开发人员扯起了后端接口的皮&#xff08;我也是前端人员&#xff09;&#xff0c;那个兄弟对后端人员提供的接口很大的意见&#xff08;我是司空见惯&#xff09;&#xff0c;不过他说的也确实有道理&#xff0c;所以结合我的见解&#xff0c;希望提供接口的人…

spring-boot项目打war包并部署到本地的tomcat容器

一、修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二、移除springboot内嵌入式tomcat插件 在pom.xml里找到spring-boot-starter-web依赖节点&#xff0c;在其中添加如下代码&#xff1a; <dependency><groupId>org.springframework…

intellij idea 如何将普通项目转换为maven项目

1.工程文件下找到文件pom.xml&#xff0c;如果没有&#xff0c;则新建一个并填写好内容。 2.在pom.xml 文件上右键 Add as Maven Project。 3.OK,等待IDEA帮你完成剩余的工作即可&#xff0c;一个maven项目即将诞生&#xff01;

jquery特效(6)—判断复选框是否选中进行答题提示

前面有一段时间思想开了小差&#xff0c;跟着师父学习了一段时间才发现差距很大&#xff0c;看来我要奋起直追~\(≧▽≦)/~啦啦啦。 最近公司在做一个项目&#xff0c;需要根据用户选择的选项给出相应的提示&#xff0c;下面来看我写的测试程序的效果&#xff1a; 一、实现的原…

前端学习(1701):前端系列javascript之闭包

function create() {const a 100return function() {console.log(a);} } const fn create() const a 200; fn() //100function print(fn) {let a 200;fn(); } let a 100function fn() {console.log(a) } print(fn)//100

hdu 3652 B-number 数位dp

题目链接 求出1-n中包含13并且能被13整除的数的个数 开一个四维数组dp[i][j][k][l]&#xff0c; i表示第i位&#xff0c; j表示这个数mod13&#xff0c; k表示是否包含13&#xff0c; l表示前一位是什么。 1 #include<bits/stdc.h>2 using namespace std;3 #define pb(x)…

MySQL之表结构设计

Schema设计原则 &#xff1a; 更小的数据类型&#xff0c;根据估计选择不会超过范围的最小数据类型。简单数据类型的操作通常需要更少的CPU周期。例如整型比字符操作代价更低&#xff0c;因为字符集和校对规则&#xff08;排序规则&#xff09;使字符比较比整型比较更复杂。 尽…

iOS8:把这些七招APP哭

6月3日。苹果发布了新一代的高配置手机操作系统iOS 8&#xff0c;我们看到了很多新的功能和引人注目的新变化。它为开发人员提供了许多其他更酷能力发展。第三方输入法也开放&#xff0c;这使得国内的百度、搜狗输入法是不过高兴的尖叫&#xff0c;但IOS8是弄哭了一大拨APP。以…

前端学习(1703):前端系列javascript之问题解答

function fn1(a, b) {console.log(this, this)console.log(a, b)return this is fn1 } const fn2 fn1.bind({ x: 100 }, 10, 20, 30); const res fn2(); console.log(res);//模拟bind Function.prototype.bind1 function() {const args Array.prototype.slice.call(argumen…

MySQL表结构设计之范式化和反范式化对比

优点 缺点 范式 1、范式化的更新操作通常比反范式化要快&#xff0c;只需要修改较少数据。 2、范式化的表通常更小&#xff0c;可以更好地放在内存里&#xff0c;所以执行操作会更快。 复杂的查询语句在符合范式的schema上都可能需要至少一次关联&#xff0c;关联表的代价昂…

11.粘性控件

粘性控件 &#xff08;对View的自定义&#xff09;* 应用场景: 未读提醒的清除* 功能实现:> 1. 画静态图 OK> 2. 把静态的数值变成变量(计算得到真实的变量) OK > 3. 不断地修改变量, 重绘界面, 动起来了.> 4. 功能分析:a. 拖拽超出范围,断开, 松手, 消失b. 拖拽超…

前端学习(1704):前端系列javascript之问题解答2和总结

//闭包隐藏数据 function createCache() {const data {} //闭包中的数据 被访问 不被外界访问return {set: function(key, val) {data[key] val},get: function(key) {return data[key];}} } const c createCache(); c.set(a, 100); console.log(c.get(a)); 弹出1,2,3&…

高性能索引设计

索引的优点 减少了服务器需要扫描的数据量帮助服务器避免排序和临时表将随机I/O变成顺序I/O 索引的类型 B-Tree索引 B-TREE通常就意味着里面存储的所有值都是有序的&#xff0c;并且查询的时候&#xff0c;不用全表扫描&#xff0c;而是按照索引结构查找&#xff0c;所以会更…

posix thread线程

1. pthread线程通过调用你提供的某些函数开始。这个“线程函数”应该只有一个void*型参数&#xff0c;并返回系统的类型。2. 通过向pthread_create函数传递线程函数的地址和线程函数调用的参数来参加线程。3. 线程可以通过pthread_self获取自己的ID。4. 除非线程的创建者或者线…