Bomb HDU - 3555

Posted song-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bomb HDU - 3555相关的知识,希望对你有一定的参考价值。

Bomb HDU - 3555

 

求1~n中含有49数的个数

#include<bits/stdc++.h>

#define LL long long
using namespace std;

LL T,x,dp[50][50],shu[50];

LL dfs(LL pos,LL x,bool ok,bool limit){
    if(!pos) return ok;
    if(!limit&&dp[pos][x]) return dp[pos][x];
    LL cnt=0,up=limit?shu[pos]:9;
    for(LL i=0;i<=up;i++)
    {
        bool flg=false;
        if(x==4&&i==9) flg=true;
        if(ok) flg=true;
        cnt+=dfs(pos-1,i,flg,limit&&shu[pos]==i);
    }
    if(!limit) dp[pos][x]=cnt;
    return cnt;
}

LL slove(LL x){
    LL k=0;
    while(x){
        shu[++k]=x%10;
        x/=10;
    }
    return dfs(k,0,0,true);
}

int main()
{
    scanf("%lld",&T);
    while(T--){
        scanf("%lld",&x);
        printf("%lld",slove(x));
        if(T) puts("");
    }
    return 0;
}

 

以上是关于Bomb HDU - 3555的主要内容,如果未能解决你的问题,请参考以下文章

[HDU3555]Bomb

HDU 3555Bomb 数位DP

HDU 3555——Bomb

HDU 3555 Bomb

HDU3555 Bomb

HDU - 3555 - Bomb(数位DP)