• UESTC 832


    数位DP

    DFS

    #include <iostream>
    #include<string.h>
    #include<stdio.h>
    using namespace std ;
    #define LL long long
    LL dp[22][11];
    int dig[22];
    
    LL dfs(int len,int cnt,int e)  长度  前几个数字 和%10   是否可以随便填  1 不可以   0  可以 
    {
        if(len==0)
            return cnt==0;
        if(!e&&dp[len][cnt]!=-1)
            return dp[len][cnt];
        LL ans=0;
        int mmax = e ? dig[len] : 9;
        for(int i=0;i<=mmax;i++)
        {
            ans+=dfs(len-1,(cnt+i)%10,e&&(i==mmax));
        }
        if(!e)
            dp[len][cnt]=ans;
        return ans;
    }
    
    LL Ques(LL n)
    {
        if(n==-1)
            return 0;
        int len=0;
        memset(dig,0,sizeof(dig));
        while(n)
        {
            dig[++len]=n%10;
            n/=10;
        }
        return dfs(len,0,1);
    }
    
    int main()
    {
        int t,ca=1;
        scanf("%d",&t);
        memset(dp,-1,sizeof(dp));
        while(t--)
        {
            LL n,m;
            scanf("%lld%lld",&n,&m);
            printf("Case #%d: %lld
    ",ca++,Ques(m)-Ques(n-1));
        }
        return 0 ;
    }
  • 相关阅读:
    Jenkins 搭建篇
    gitlab搭建使用
    apiDoc部署搭建
    传统切图
    Web前端性能优化的9大问题
    photoshop cc 智能切图
    ps切图
    前端ps切图,图文教程,详细。
    axios
    数组API
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6477269.html
Copyright © 2020-2023  润新知