zoukankan      html  css  js  c++  java
  • HDU 3555 Bomb

    模板题

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll num;
    int a[20],len;
    ll dp[2][20],ten[20];
    ll dfs(int pos,bool pre,bool lim)
    {
        int Max=lim?a[pos]:9;
        if(pos==1)return Max==9&&pre;
        if(!lim&&dp[pre][pos]!=-1)return dp[pre][pos];
        ll ret=0;
        for(int i=0;i<=Max;++i)
        {
            //printf("%d:%d ",pos,i);
            if(i==9&&pre)ret+=lim?(num%ten[pos-1]+1):ten[pos-1];
            else ret+=dfs(pos-1,i==4,lim&&i==Max);
            //printf("%d
    ",ret);
        }
        if(!lim)dp[pre][pos]=ret;
        return ret;
    }
    ll solve(ll x)
    {
        len=0;
        while(x)
        {
            a[++len]=x%10;
            x/=10;
        }
        return dfs(len,0,1);//todo
    }
    int main()
    {
        //freopen("Input.txt","r",stdin);
        ten[0]=1;
        for(int i=1;i<=19;++i)ten[i]=ten[i-1]*10;
        memset(dp,-1,sizeof dp);
        int t;scanf("%d",&t);
        while(t--)
        {
            scanf("%I64d",&num);
            printf("%I64d
    ",solve(num));
        }
    }
    
  • 相关阅读:
    [CTF]跳舞的小人
    [CTF]Rabbit加密
    [CTF]ROT5/13/18/47编码
    [CTF]URL编码
    [CTF]unicode编码
    [CTF]培根密码
    电机控制总结
    stm32f4定时器配置
    MOS管测量好坏测量方法
    四元数
  • 原文地址:https://www.cnblogs.com/maoruimas/p/9714590.html
Copyright © 2011-2022 走看看