codeforces 9C 数位DP做法
2017-01-03 22:25
411 查看
#include<iostream> #include<cstdio> #define ll long long using namespace std; int dp[12][12]; int main(){ dp[1][1] = 1; dp[1][0] = 1; for(int i = 2;i <= 10;++i){ for(int j = 0;j <= 1;++j){ for(int k = 0;k <= 1;++k){ dp[i][j] += dp[i-1][k]; } } } ll n; while(scanf("%I64d",&n) != EOF){ int a[12],len = 0; n++; while(n > 0){ a[++len] = n%10; n /= 10; } int ans = 0; for(int i = len;i >= 1;--i){ for(int j = 0;j <= 9;++j){ if(j < a[i]){ ans += dp[i][j]; } } if(a[i] > 1) break; } printf("%d\n",ans-1); } return 0; }
相关文章推荐
- acdream 1064
- HDU3271 SNIBB(数位dp+二分)
- USACO2014Open Silver 奶牛的叫唤2.0
- hdu 2089 不要62 数位dp
- hdu 3943 K-th Nya Number 数位dp
- hdu 3652 B-number 数位dp
- hdu 3555 bomb 数位dp
- hdu 2089 不要62 数位dp
- HDU 5587 Array 递归 规律 数位dp
- 【数位DP】SPOJ10606Balanced Numbers
- [hdu3652]B-number(数位dp)
- BZOJ 1026, Windy数
- hdu5898 odd-even number
- 关于矩阵优化的DP总结
- lightoj 1068(数位dp)
- poj 3252 (转换成二进制的数位dp )
- hdu 3652 (数位dp 模板题)
- hdu 2089(数位DP)
- hdu HDU 3555 Bomb
- hiho #1033 : 交错和