zoukankan      html  css  js  c++  java
  • hdu3555 数位dp

    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define INF 99999999
    #define ll __int64
    using namespace std;
    const int MAXN = 30;
    ll dp[MAXN][MAXN];
    void init()
    {
        int i,j,k;
        memset(dp,0,sizeof(dp));
        dp[0][0] = 1;
        for(i=1; i<=25; i++){
            for(j=0; j<=9; j++){
                for(k=0; k<=9; k++){
                    if(!(j==4 && k==9)){
                        dp[i][j] += dp[i-1][k];
                    }
                }
            }
        }
    }
    ll slove(ll n)
    {
        int i,j,digit[30],len;
        len = 0;
        memset(digit,0,sizeof(digit));
        ll x = n;
        while(1){
            if(!x)break;
            digit[++len] = x%10;
            x/=10;
        }
    
        ll ans = 0;
        for(i=len; i>0; i--){
            for(j=0; j<digit[i]; j++){
                if(!(digit[i+1]==4 && j==9))
                    ans += dp[i][j];
            }
            if(digit[i+1]==4 && digit[i]==9)
                break;
        }
        return ans;
    }        
    int main()
    {
        int i,j,t;
        ll n;
        init();
        cin>>t;
        while(t--){
            cin>>n;
            cout<<n-slove(n+1)+1<<endl;
        }
        return 0;
    }
  • 相关阅读:
    calcite介绍
    kylin介绍
    hbase(三)coprocessor
    流式计算-窗口
    实验室服务器琐事
    流畅的python笔记
    语义分割相关网络简述
    leetcode 696
    树的非递归遍历
    leetcode 665
  • 原文地址:https://www.cnblogs.com/sweat123/p/5113290.html
Copyright © 2011-2022 走看看