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);
    
      }
    
    
    }
  • 相关阅读:
    洛谷 P1282 多米诺骨牌
    【2017杭二联考】穿越矩形
    【2017杭二联考】 图的有向环
    树状数组
    Test2014-3-1 魅力值比较
    NOI2007 货币兑换
    POI2001 金矿
    太空飞行计划问题
    Genotype&&陨石的秘密
    usaco 土地并购 && hdu 玩具装箱
  • 原文地址:https://www.cnblogs.com/nr1999/p/9401057.html
Copyright © 2011-2022 走看看