zoukankan      html  css  js  c++  java
  • hdu3555

    基本的数位dp

    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    #define D(x) x
    
    const int MAX_DIGIT = 66;
    
    long long n;
    int f[MAX_DIGIT];
    long long memoize[MAX_DIGIT][2][2][2];
    
    void to_digits(long long a)
    {
        for (int i = 0; i < MAX_DIGIT; i++)
        {
            f[i] = a % 10;
            a /= 10;
        }
    }
    
    long long dfs(int digit, bool less, bool contain, bool four)
    {
        if (digit == -1)
        {
            return contain;
        }
        if (memoize[digit][less][contain][four] != -1)
        {
            return memoize[digit][less][contain][four];
        }
        int limit = less ? 9 : f[digit];
        long long ret = 0;
        for (int i = 0; i <= limit; i++)
        {
            if (four && i == 9)
            {
                ret += dfs(digit - 1, less || i < f[digit], true, false);
                continue;
            }
            if (i == 4)
            {
                ret += dfs(digit - 1, less || i < f[digit], contain, true);
                continue;
            }
            ret += dfs(digit - 1, less || i < f[digit], contain, false);
        }
        memoize[digit][less][contain][four] = ret;
        return ret;
    }
    
    int main()
    {
        int t;
        scanf("%d", &t);
        while (t--)
        {
            scanf("%I64d", &n);
            to_digits(n);
            memset(memoize, -1, sizeof(memoize));
            long long ans = dfs(64, false, false, false);
            printf("%I64d
    ", ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    MySQL用户
    python -- 中
    Python -- 上
    Zabbix导入数据库时报错
    chmod无执行权限
    编译安装Tengine
    Nginx的调度算法
    nginx--第三方模块echo
    ngx_http_headers_module
    nginx---隐藏或添加后端服务器的信息
  • 原文地址:https://www.cnblogs.com/rainydays/p/4260792.html
Copyright © 2011-2022 走看看