zoukankan      html  css  js  c++  java
  • XDU 1161



    Problem 1161 - 科协的数字游戏II
    Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty
    Total Submit: 112  Accepted: 15  Special Judge: No
    Description

     由于科协里最近真的很流行数字游戏。(= =!汗一个)某人又命名了一种取模数,这种数字必须满足各位数字之和 mod N为0。现在大家又要玩游戏了,指定一个整数闭区间[a,b],问这个区间内有多少个取模数。

    Input
    题目有多组测试数据。每组只含3个数字a, b, n (1 <= a, b <= 2^31,1 <= n < 100)。
    Output
    每个测试用例输出一行,表示各位数字和 mod N为0 的数的个数。
    Sample Input
    1 19 9
    Sample Output
    2
    Hint
    Source
    tclh123

    #include <iostream>
    #include <cstdio>
    #include <cstring>

    using namespace std;

    int dp[100][111],bit[100],a,b,n;

    int dfs(int pos,int res,bool limit)
    {
        if(pos==-1)
            return res==0;
        if(!limit&&~dp[pos][res]) return dp[pos][res];
        int end=limit?bit[pos]:9;
        int ans=0;
        for(int i=0;i<=end;i++)
        {
            int newres=(res+i)%n;
            ans+=dfs(pos-1,newres,limit&&(i==end));
        }
        if(!limit)
            dp[pos][res]=ans;
        return ans;
    }

    int cal(int x)
    {
        int len=0;
        while(x)
        {
            bit[len++]=x%10;
            x/=10;
        }
        return dfs(len-1,0,true);
    }

    int main()
    {
        while(scanf("%d%d%d",&a,&b,&n)!=EOF)
        {
            memset(dp,-1,sizeof(dp));
            printf("%d ",cal(b)-cal(a-1));
        }
        return 0;
    }
    * This source code was highlighted by YcdoiT. ( style: Codeblocks )
     



  • 相关阅读:
    使用parted对大于2T的磁盘进行分区
    iso系统镜像刻录到光盘和U盘
    戴尔R710服务器安装系统——配置raid
    UltraISO 9.7.1.3519注册码
    H3C交换机配置vlan
    kvm创建新虚拟机
    Windows添加永久静态路由
    gitlab部署步骤+汉化
    php配置php_pdo_mysql模块
    为git服务器配置gitosis管理权限
  • 原文地址:https://www.cnblogs.com/CKboss/p/3350844.html
Copyright © 2011-2022 走看看