zoukankan      html  css  js  c++  java
  • A

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<time.h>
    #include<iostream>
    #include<ctype.h>
    #include<map>
    #include<set>
    #include<string>
    #include<vector>
    #include<algorithm>
    #include<stdlib.h>
    #include<queue>
    #include<stack>
    using namespace std;
    #define LL long long
    LL dp[45][3],num[45];
    LL dfs(int pos,int st,int limit)//pos数位,从最高位开始枚举,st表示状态,不符合状态记为2,最初状态记为0,出现6状态为1,limit为上限,达到枚举上限为1否则为0
    {   int i;
        if(pos<0)
            return st==2;
        if(!limit&&dp[pos][st]!=-1)
            return dp[pos][st];
            LL ans=0;
        int len=limit?num[pos]:9;
        for(i=0;i<=len;i++)
        {
            if(i==4||i==2||(st==1&&i==2))
                ans+=dfs(pos-1,2,limit&&i==len);
            else if(i==6)
               ans+= dfs(pos-1,1,limit&&i==len);
            else
                ans+=dfs(pos-1,0,limit&&i==len);
    
        }
        if(!limit)
            dp[pos][st]=ans;
        return ans;
    }
    LL solv(LL a)
    {
        int len=0;
        memset(dp,-1,sizeof(dp));
        memset(num,-1,sizeof(num));
        while(a)
        {
            num[len++]=a%10;
            a/=10;
        }
        dfs(len-1,0,1);
    }
    int main()
    {
      int t,n,m;
      while(~scanf("%d%d",&n,&m))
      {
          if(n==0&&m==0)
            break;
            LL ee=solv(m)-solv(n-1);
            printf("%lld
    ",m-n+1-ee);
    
      }
    
    
    }
  • 相关阅读:
    Java知识点:javac命令
    Java知识点:内部类
    证明:寝室分配问题是NPC问题
    Java知识点:Object类
    Java 知识点:序列化
    Python3玩转儿 机器学习(2)
    Python3玩转儿 机器学习(1)
    python re模块findall使用
    百度URL 部分参数
    python datetime模块
  • 原文地址:https://www.cnblogs.com/nr1999/p/9401057.html
Copyright © 2011-2022 走看看