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
Codeforces Round #722 (Div. 2) C. Parsa's Humongous Tree(树形DP)