数位dp入门HDU208962

Posted zcysky

tags:

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

为了我的点歪的技能树……

所以开始补一些sb的东西……

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int a[20],dp[20][2];
int dfs(int x,int pre,int vis,int lim){
    if(x==-1)return 1;
    if(!lim&&dp[x][vis]!=-1)return dp[x][vis];
    int maxv=lim?a[x]:9;int tmp=0;
    for(int i=0;i<=maxv;i++){
        if(pre==6&&i==2)continue;if(i==4)continue;
        tmp+=dfs(x-1,i,i==6,lim&&i==a[x]);
    }
    if(!lim)dp[x][vis]=tmp;
    return tmp;
}
int solve(int x){
    int len=0;
    while(x){a[len++]=x%10;x/=10;}
    return dfs(len-1,-1,0,1);
}
int main(){
    int l,r;
    while(scanf("%d%d",&l,&r)&&(l+r)){
        memset(dp,-1,sizeof(dp));
        printf("%d\n",solve(r)-solve(l-1));
    }
}

 

以上是关于数位dp入门HDU208962的主要内容,如果未能解决你的问题,请参考以下文章

hdu 2089 不要62 数位DP入门

HDU 3555 数位dp入门

数位DP入门题 hdu 2089 hdu 3555

HDU 2089 不要62(数位dp入门)

HDU-2089不要62-暴力或数位DP入门

[HDU4734] 不要62(数位dp入门)