hdu 2089 数位DP

来源:互联网 发布:房地产行业数据分析 编辑:程序博客网 时间:2024/04/25 22:39

数位DP是个啥,不知道,看的这个:点击打开链接


AC代码:

#include <iostream>#include <cstdlib>#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<=7;i++)        for(int j=0;j<10;j++)        for(int k=0;k<10;k++)            if(j!=4&&!(j==6&&k==2))            dp[i][j]+=dp[i-1][k];}int solve(int n){    int digit[10];    int len=0;    while(n){        digit[++len]=n%10;        n/=10;    }    digit[len+1]=0;    int ans=0;    for(int i=len;i>0;i--){        for(int j=0;j<digit[i];j++){            if(j!=4&&!(digit[i+1]==6&&j==2))                ans+=dp[i][j];        }        if(digit[i]==4||(digit[i]==2&&digit[i+1]==6))            break;    }    return ans;}int main(){    int l,r;    init();    while(cin>>l>>r){        if(l+r==0)break;        else cout<<solve(r+1)-solve(l)<<endl;    }    return 0;}


0 0
原创粉丝点击