• 一本通1588数字游戏


    1588:数字游戏

    时间限制: 1000 ms         内存限制: 524288 KB

    题目描述

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

    输入格式

    题目有多组测试数据。每组只含三个数字 a,b,N。

    输出格式

    对于每个测试数据输出一行,表示各位数字和 modN 为 0 的数的个数。

    样例

    样例输入

    1 19 9

    样例输出

    2

    数据范围与提示

    对于全部数据,1a,b2^311,1N<100。

    sol:稍微变了变,但也很难,而且要记录一个arr,因为很多dp值仍然是0,直接写if(dp[i]~~[i])就起不到记搜的效果了

    #include <bits/stdc++.h>
    using namespace std;
    int Mod;
    int Num[20],dp[20][10][105][2][2];
    bool arr[20][10][105][2][2];
    inline int dfs(int Weis,int Shuz,int Yus,bool Shangj,bool Qiand0)
    {
        if(arr[Weis][Shuz][Yus][Shangj][Qiand0]) return(dp[Weis][Shuz][Yus][Shangj][Qiand0]);
        arr[Weis][Shuz][Yus][Shangj][Qiand0]=1;
        if(Weis==1) return (dp[Weis][Shuz][Yus][Shangj][Qiand0]=(Shuz%Mod==Yus)?1:0);
        dp[Weis][Shuz][Yus][Shangj][Qiand0]=0;
        int i,Up=Shangj?Num[Weis-1]:9;
        for(i=0;i<=Up;i++)
        {
            bool Bo1=(Shangj&&i==Up),Bo2=(Qiand0&&i==0);
            dp[Weis][Shuz][Yus][Shangj][Qiand0]+=dfs(Weis-1,i,(Yus-Shuz%Mod+Mod)%Mod,Bo1,Bo2);
        }
        return dp[Weis][Shuz][Yus][Shangj][Qiand0];
    }
    inline int Solve(int n)
    {
        if(n==0) return 1;
        *Num=0;
        while(n)
        {
            Num[++*Num]=n%10;
            n/=10;
        }
        int i,ans=0;
        ans+=dfs(*Num,0,0,0,1);
        for(i=1;i<Num[*Num];i++)
        {
            ans+=dfs(*Num,i,0,0,0);
        }
        ans+=dfs(*Num,Num[*Num],0,1,0);
        memset(arr,0,sizeof arr);
        return ans;
    }
    int main()
    {
    //    freopen("test1.in","r",stdin);
        int l,r;
        while(~scanf("%d%d%d",&l,&r,&Mod))
        {
            printf("%d
    ",Solve(r)-Solve(l-1));
        }
        return 0;
    }
    /*
    input
    1 19 9
    output
    2
    
    input
    1 1893117615 79
    output
    62
    */
    View Code
  • 相关阅读:
    perl 添加主机
    java将阿拉伯数字转换为中文数字
    使用EL调用Java方法
    Perl 检索zabbix 主机
    perl和curl 模拟post 发送json数据
    Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.continuation.ContinuationThrowable
    3.4. JVM Agent
    perl JMX::Jmx4Perl::Manual 说明
    perl 安装 JMX::Jmx4Perl 需要版本5.10.1
    Chapter 2.Jolokia Architecture 结构:
  • 原文地址:https://www.cnblogs.com/gaojunonly1/p/10360122.html
Copyright © 2020-2023  润新知