码迷,mamicode.com
首页 > 其他好文 > 详细

Bomb HDU - 3555

时间:2018-09-09 22:42:04      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:class   turn   als   lld   fine   pac   lov   ++   bom   

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

标签:class   turn   als   lld   fine   pac   lov   ++   bom   

原文地址:https://www.cnblogs.com/song-/p/9615533.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!