• [LOJ10164]数字游戏


    题目描述

    科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如 。现在大家决定玩一个游戏,指定一个整数闭区间 ,问这个区间内有多少个不降数。

    输入格式

    有多组测试数据。每组只含两个数字 ,意义如题目描述。

    输出格式

    每行给出一个测试数据的答案,即  之间有多少不降数。

    样例

    样例输入

    1 9
    1 19
    

    样例输出

    9
    18

    一道简单的数位dp模板题
     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 #include<cstring>
     5 using namespace std;
     6 long long a[105],l,r,dp[105][15];
     7 int dfs(int pos,int l,bool flag)
     8 {
     9     if(pos==0) return 1;
    10     if(!flag&&dp[pos][l]!=-1) return dp[pos][l];
    11     int tmp=0;
    12     int t;
    13     if(flag) t=a[pos];
    14     else t=9;
    15     for(int i=l;i<=t;i++) tmp+=dfs(pos-1,i,flag&&i==t);
    16     if(!flag) dp[pos][l]=tmp;
    17     return tmp;
    18 }
    19 long long solve(int x)
    20 {
    21     int num=0;
    22     while(x>0)
    23     {
    24         num++;
    25         a[num]=x%10;
    26         x/=10;
    27     }
    28     return dfs(num,0,true);
    29 }
    30 int main()
    31 {
    32     while(~scanf("%lld %lld",&l,&r))
    33     {
    34         memset(dp,-1,sizeof(dp));
    35         printf("%lld
    ",solve(r)-solve(l-1));
    36     }
    37 }
     
  • 相关阅读:
    HDU-2502-月之数
    C语言的位运算的优势
    HDU-1026-Ignatius and the Princess I
    HDU-1015-Safecracker
    HDU-1398-Square Coins
    HDU-1028-Ignatius and the Princess III
    背包的硬币问题
    HDU-1527-取石子游戏
    HDU-1996-汉诺塔VI
    css中的选择器
  • 原文地址:https://www.cnblogs.com/jiuduSHENBENG/p/11357664.html
Copyright © 2020-2023  润新知