zoukankan      html  css  js  c++  java
  • 一本通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
  • 相关阅读:
    css取消input、select默认样式(手机端)
    Vue解决sass-loader的版本过高导致的编译错误
    在Vue项目中引入element-ui,显示结果没有样式的问题
    修改Vue项目打开指定浏览器和修改端口号
    Vue如何关闭eslint
    停止事件冒泡
    子组件中定义的方法如何传给父组件调用了呢?
    vue自定义时间过滤器之使用date-fans代替moment
    面试5(每日打卡)
    2019.10.22
  • 原文地址:https://www.cnblogs.com/gaojunonly1/p/10360122.html
Copyright © 2011-2022 走看看