C. Hexadecimal's Numbers

Posted -ackerman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C. Hexadecimal's Numbers相关的知识,希望对你有一定的参考价值。

题目链接:http://codeforces.com/problemset/problem/9/C

 

题意:

输入n,输出1-n的自然数中各数位只包含0和1的数的个数。

 

思路:

不难知道1,10,11,100 这种是满足要求的。那么如何去求呢?

直接根据1,去找10,11

再根据10,去找100,101

再根据11,去找110,111

 

啊!好水的 dfs 为什么我当时就没有想到。。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 #include <math.h>
 6 #include <set>
 7 #include <vector>
 8 #include <stack>
 9 
10 #define LL long long
11 using namespace std;
12 const int maxn= 1e5 + 10;
13 
14 LL n;
15 
16 LL cnt = 0;
17 void dfs(LL x)
18     if (x>n)
19         return ;
20     cnt++;
21     dfs(x*10);
22     dfs(x*10+1);
23 
24 
25 
26 int main()
27     scanf("%lld",&n);
28     dfs(1);
29     printf("%lld\n",cnt);
30     return 0;
31 

 

以上是关于C. Hexadecimal's Numbers的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 9C Hexadecimal's Numbers - 有技巧的枚举

Codeforce Div-2 985 C. Liebig's Barrels

#614 C. NEKO's Maze Game

Codeforces Round #722 (Div. 2) C. Parsa's Humongous Tree(树形DP)

C. Helga Hufflepuff's Cup 树形dp 难

C. Parsa's Humongous Tree(树形dp)