zoukankan      html  css  js  c++  java
  • 【数位dp】hdu2089 不要62

    http://www.cnblogs.com/xiaohongmao/p/3473599.html

    #include<cstdio>
    using namespace std;
    int n,m,f[8][3];
    void init()
    {
        f[0][0]=1;
        for(int i=1;i<=7;++i)
          {
              f[i][0]=f[i-1][0]*9-f[i-1][1];
              f[i][1]=f[i-1][0];
              f[i][2]=f[i-1][2]*10+f[i-1][0]+f[i-1][1];
          }
    }
    int work(int x)
    {
        int ans=0,t=x,bit[10],len=0;
        while(t)
          {
              bit[++len]=t%10;
              t/=10;
          }
        bit[len+1]=bit[len+2]=0;
        bool flag=0;
        for(int i=len;i;--i)
          {
              if((bit[i+1]==2 && bit[i+2]==6) || bit[i+1]==4)
                flag=1;
              ans+=f[i-1][2]*bit[i];
              if(flag)
                ans+=bit[i]*f[i-1][0];
              else 
              {
                  if(bit[i] > 6)
                      ans+=f[i-1][1];
                  if(bit[i] > 4)
                      ans+=f[i-1][0];
                  if(bit[i+1] == 6 && bit[i] > 2)
                      ans+=f[i][1];
              }
          }
        return x-ans;
    }
    int main()
    {
        init();
    //    freopen("hdu2089.in","r",stdin);
        while(1)
          {
              scanf("%d%d",&n,&m);
              if((!n) && (!m))
                break;
              printf("%d
    ",work(m+1)-work(n));
          }
        return 0;
    }
  • 相关阅读:
    Move Zeroes
    Intersection of Two Arrays II
    Intersection of Two Arrays
    Create Maximum Number
    Leetcode version 2
    JDBC学习笔记
    九章算法基础班
    九章算法强化班
    LeetCode
    Amazon High Frequent 9 problems
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/4596756.html
Copyright © 2011-2022 走看看