hihocoder 扩展二进制数

思路:

递归,分治。

实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 int dfs(int x)
 6 {
 7     if (x <= 1)
 8         return 1;
 9     if (x & 1)
10         return dfs((x - 1) >> 1);
11     return dfs(x >> 1) + dfs((x - 2) >> 1);
12 }
13
14 int main()
15 {
16     int n;
17     cin >> n;
18     cout << dfs(n) << endl;
19     return 0;
20 }
时间: 2024-08-08 03:33:59

hihocoder 扩展二进制数的相关文章

hihocoder 1331 - 扩展二进制数 - [hiho一下168周]

题目链接:http://hihocoder.com/problemset/problem/1331 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 我们都知道二进制数的每一位可以是0或1.有一天小Hi突发奇想:如果允许使用数字2会发生什么事情?小Hi称其为扩展二进制数,例如(21)ii = 2 * 21 + 1 = 5, (112)ii = 1 * 22 + 1 * 21 + 2 = 8. 很快小Hi意识到在扩展二进制中,每个数的表示方法不是唯一的.例如8还可以有(

HihoCoder - 1297 数论四&#183;扩展欧几里德

描述 小Hi和小Ho周末在公园溜达.公园有一堆围成环形的石板,小Hi和小Ho分别站在不同的石板上.已知石板总共有m块,编号为 0..m-1,小Hi一开始站在s1号石板上,小Ho一开始站在s2号石板上. 小Hi:小Ho,你说我们俩如果从现在开始按照固定的间隔数同时同向移动,我们会不会在某个时间点站在同一块石板上呢? 小Ho:我觉得可能吧,你每次移动v1块,我移动v2块,我们看能不能遇上好了. 小Hi:好啊,那我们试试呗. 一个小时过去了,然而小Hi和小Ho还是没有一次站在同一块石板上. 小Ho:不

hihocoder 1084 扩展KMP &amp;&amp; 2014 北京邀请赛 Justice String

hihocoder 1084 : http://hihocoder.com/problemset/problem/1084 北京邀请赛 Just  String http://www.bnuoj.com/v3/problem_show.php?pid=34990 两道题同样的做法,题目基本内容是找到A的字串中和B串长度一样,且不同的字符个数不超过k个的置. 以hihocoder 1084为例, 是求有多少个A的字串的,与B串长度一样,且不同的字符个数不超过k. 分析:预处理hash,然后对每个字

hihocoder 编程练习赛23

第一题:H国的身份证号码I 题意:一个N位的正整数(首位不能是0).每位数字都小于等于K,并且任意相邻两位数字的乘积也小于等于K.按从小到大的顺序输出所有合法的N位号码,每个号码占一行. 思路:dfs #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N = 20; #define LL long long int n, k, a[N]; void

对UIColor的扩展

UIcolor这个类中,系统给的颜色太少了,虽然给我们提供了一个方法(光的三原色,根据红,绿,蓝光的比例调出很多颜色,RGB)colorWithRed:green:blue:alpha,但是用起来还是很麻烦,在这人给大家介绍一个简单的方法,就是自己对UIColor扩展,写一个方法 先介绍一下要写什么样的方法: 这个方法里我们需要传一个字符串(比如:@"00ff00"),就是一个颜色对应的RGB值,然后返回给我相应的颜色,我们不需要用colorWithRed:green:blue:alp

hihoCoder #1312 : 搜索三&#183;启发式搜索(A*, 康托展开)

原题网址:http://hihocoder.com/problemset/problem/1312 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 在小Ho的手机上有一款叫做八数码的游戏,小Ho在坐车或者等人的时候经常使用这个游戏来打发时间. 游戏的棋盘被分割成3x3的区域,上面放着标记有1~8八个数字的方形棋子,剩下一个区域为空. 游戏过程中,小Ho只能移动棋子到相邻的空区域上.当小Ho将8个棋子都移动到如下图所示的位置时,游戏就结束了. 小Hi:小Ho,你觉

Unicode其实是Latin1的扩展。只有一个低字节的Uncode字符其实就是Latin1字符——附各种字符编码表及转换表

一.概念 1,ASCII ASCII(American Standard Code for Information Interchange),中文名称为美国信息交换标准代码.是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统.ASCII码又分为标准ASCII码和扩展ASCII码. 标准ASCII码.标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9.标点符号, 以及在美式英语中使用的特殊控制字符.

标准ACL、扩展ACL和命名ACL的理论和配置实例

理论部分 标准访问控制列表的配置: R1(config)#access-list access-list-number {permit丨deny} source {source wildcard} access-list-number:访问控制列表表号 permit丨deny:满足测试条件,则拒绝/允许通过流量 Source:数据包的源地址,可以是主机地址或网络地址 {source wildcard}:通配符掩码,也叫做反码.在用二进制数0和1表示时,如果为1表明这一位不需要匹配,如果为0表明这

扩展mysql - 手把手教你写udf

1 MySQL简介 MySQL是最流行的开放源码SQL数据库管理系统,相对于Oracle,DB2等大型数据库系统,MySQL由于其开源性.易用性.稳定性等特点,受到个人使用者.中小型企业甚至一些大型企业的广泛欢迎,MySQL具有以下特点: l  MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,这样就增加了速度并提高了灵活性. l  MySQL软件是一种开放源码软件. l  MySQL数据库服务器具有快速.可靠和易于使用的特点. l  My