zoukankan      html  css  js  c++  java
  • HDOJ 2089不要62 (按位DP)

    题意:求n到m中有多少个数不含“4”和“62”

    View Code
    #include <stdio.h>
    #include <string.h>
    #define LEN 10
    char a[LEN],b[LEN];
    int n,m;
    int dp[LEN][3][2];
    int nextstate(int cur,int in)
    {
        if(cur==2 || cur==1&&in==2 || in==4) return 2;
        return in==6;
    }
    int nextflag(int cur,int in,int max)
    {
        if(cur==1 && in==max)   return 1;
        if(cur==1 && in>max)    return -1;
        return 0;
    }
    int DP(char *s,int len)
    {
        memset(dp,0,sizeof(dp));
        dp[0][0][1]=1;
        for(int i=1;i<=len;i++)
        {
            for(int state=0;state<3;state++)
            {
                for(int flag=0;flag<2;flag++)
                {
                    for(int j=0;j<10;j++)
                    {
                        if(nextflag(flag,j,s[i]-'0')==-1)   continue;
                        dp[i][nextstate(state,j)][nextflag(flag,j,s[i]-'0')]+=dp[i-1][state][flag];
                    }
                }
            }
        }
        return dp[len][2][0]+dp[len][2][1];
    }
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            if(n==0 && m==0)    break;
            n-=1;
            sprintf(a+1,"%d",n);
            sprintf(b+1,"%d",m);
            printf("%d\n",m-DP(b,strlen(b+1))-n+DP(a,strlen(a+1)));
        }
        return 0;
    }
  • 相关阅读:
    Service
    adb server is out of date
    Notification.Builder
    eclipse连接小米2调试程序的问题
    Date类
    this指向冒泡排序二分查找
    Dom事件键盘事件
    Dom事件键盘事件
    12.4Dom事件键盘事件
    事件对象
  • 原文地址:https://www.cnblogs.com/algorithms/p/2619188.html
Copyright © 2011-2022 走看看