喵哈哈的日常选数问题(数位DP)
2015-07-17 21:48
288 查看
E - 喵哈哈的日常选数问题
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Status
Problem Description
喵哈哈村子的TTT同学比较怪,他非常讨厌一类数字,是哪种呢?
就是讨厌那些含有37或者4的数
比如 21379,123485,12379。
但是他并不讨厌928357这个数,因为他即不包含37,也没有4。
现在你[L,R]的区间,问你在这个区间中,最多能够选出多少个TTT同学不讨厌的数呢?
Input
输入两个整数,表示L和R
1 <= L <= R <= 2000000000 。
Output
输出一个整数,表示选出的数的个数
Sample Input
1 10
Sample Output
9
Submit
题目大意:给出一个区间,求不含37或者4的数个数
分析:经典数位DP问题。推荐一个ppt:http://wenku.baidu.com/view/9de41d51168884868662d623.html
代码:
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Status
Problem Description
喵哈哈村子的TTT同学比较怪,他非常讨厌一类数字,是哪种呢?
就是讨厌那些含有37或者4的数
比如 21379,123485,12379。
但是他并不讨厌928357这个数,因为他即不包含37,也没有4。
现在你[L,R]的区间,问你在这个区间中,最多能够选出多少个TTT同学不讨厌的数呢?
Input
输入两个整数,表示L和R
1 <= L <= R <= 2000000000 。
Output
输出一个整数,表示选出的数的个数
Sample Input
1 10
Sample Output
9
Submit
题目大意:给出一个区间,求不含37或者4的数个数
分析:经典数位DP问题。推荐一个ppt:http://wenku.baidu.com/view/9de41d51168884868662d623.html
代码:
#include <iostream> #include <string> #include <cstring> #include <algorithm> using namespace std; int dp[10][10]; void init() { memset(dp,0,sizeof(dp)); dp[0][0] = 1; for(int i = 1; i <= 10;i ++) { for(int j = 0; j <10; j++) { for(int k = 0; k < 10; k++) { if(j !=4 && !(j == 3 && k == 7)) dp[i][j] += dp[i-1][k]; } } } } int solve(int n) { init(); int digit[10]; int len = 0; while(n > 0) { digit[++len] = n%10; n /= 10; } digit[len+1]=0; int ans = 0; for(int i = len; i; i--) { for(int j = 0 ;j < digit[i]; j++) { if(j !=4 && !(digit[i+1] == 3&& j == 7)) ans += dp[i][j]; } if(digit[i] == 4 || (digit[i] == 7 && digit[i+1] == 3)) break; } return ans; } int main() { int l,r; while(cin>>l>>r) { if(l+r == 0) break; else cout<<solve(r+1)-solve(l)<<endl; } return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android px、dp、sp之间相互转换
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- TYVJ1193 括号序列解题报告
- 对DP的一点感想
- TYVJ上一些DP的解题报告
- soj1005. Roll Playing Games
- 01背包问题
- LeetCode之Maximum Product Subarray
- DP Flow
- zoj3605 Find the Marble(三维dp)
- Word Break I,II, Triangle,Palindrome Partitioning 动态规划 DP
- Unique Paths I,II, Minimum Path Sum
- Gas Station