zoukankan      html  css  js  c++  java
  • [SDOI2014]数数 --- AC自动机 + 数位DP

    [SDOI2014]数数

    题目描述:

    我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串。

    例如当S=(22,333,0233)时,233是幸运数,2333、20233、3223不是幸运数。

    给定N和S,计算不大于N的幸运数个数。

     

    输入格式:

    输入的第一行包含整数N。

    接下来一行一个整数M,表示S中元素的数量。

    接下来M行,每行一个数字串,表示S中的一个元素。

     

    输出格式:

    输出一行一个整数,表示答案模(10^{9}+7)的值。

     

    跟[JSOI2007]文本生成器类似

    把DP更改为数位DP即可

    增添一维 (dp(i,j,k): , k: epsilon (0,1))

    k = 0时,表示第 i 位不受限制时的数量

    k = 1时,表示第 i 位受到限制时的数量

    转移时;

    ( dp(i, j, 1) = dp(i, j, 1) + dp(i - 1, v, 1) ;)

    ( dp(i, j, 0) = dp(i, j, 0) + dp(i-1, v, 0) ;)

    ( dp(i, j, 1) = dp(i, j, 1) + dp(i-1, v, 0),: v leq n;)

    初值注意也要限制;

    代码在此

  • 相关阅读:
    调试D2JS
    PG 中 JSON 字段的应用
    面试----
    机器学习面试题
    闭包和装饰器
    scss-混合@mixin @include @function
    scss基本使用及操作函数
    常用的scss函数(mixin)
    二叉搜索树基本操作实现
    判断一棵树是否是二叉搜索树
  • 原文地址:https://www.cnblogs.com/reverymoon/p/8867393.html
Copyright © 2011-2022 走看看