[HDU P2089]不要62

来源:互联网 发布:不支持后端数据库设计 编辑:程序博客网 时间:2024/05/22 23:08

原题链接

数位DP入门

真的是好久不写了
入门题搞了一个小时

依旧延续DP的优良传统
想不到的状态
推不出的转移
但是好像这道题是数位DP的常规想法

手好冷啊不想打字了……
参考链接

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<cstdlib>using namespace std;int t[10],f[10][10];void pre(){    int i,j,k;    f[0][0]=1;    for(i=1;i<=7;i++)        for(j=0;j<=9;j++)        {            if(j==4) f[i][j]=0;            else            {                for(k=0;k<=9;k++)                    f[i][j]+=f[i-1][k];                if(j==6) f[i][j]-=f[i-1][2];            }        }}int work(int x){    int re=0,cnt=0,i,j;    while(x)    {        cnt++;        t[cnt]=x%10;        x/=10;    }    t[cnt+1]=0;    for(i=cnt;i>=1;i--)    {        for(j=0;j<t[i];j++)            if(j!=4&&!(t[i+1]==6&&j==2)) re+=f[i][j];        if(t[i]==4) break;        if(t[i+1]==6&&t[i]==2) break;    }    return re;}int main(){    int n,m,p1,p2;    pre();    scanf("%d%d",&n,&m);    while(n!=0&&m!=0)    {        p1=work(n);        p2=work(m+1);        printf("%d\n",p2-p1);        scanf("%d%d",&n,&m);    }    return 0;}
原创粉丝点击