题意:规定一个合法的号码不能含有4或者是连续的62
给定区间[n,m] 问此区间内合法的号码的个数
分析:数位dp
dp[i][j]代表 最高位为 j 的 i 位数有多少个合法的
然后按题目规则进行转移即可
dp结束后,再统计范围内的总数,最后打表输出
代码:
#include#include #include using namespace std;#define MAX 100000000int n,k,m;int ans[1000010];int dp[10][10];int fun(int x){ int t=0; int res=0; int a[10]; while(x) { a[t++]=x%10; x/=10; } for(int i=t;i;i--) { for(int j=0;j