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;)

    初值注意也要限制;

    代码在此

  • 相关阅读:
    nm applet disable
    profile和bash
    gre tunnel
    Redux
    react 组件架构
    Flux reference
    Controller View 模式
    Flux
    react事件代理
    虚拟dom和diff算法
  • 原文地址:https://www.cnblogs.com/reverymoon/p/8867393.html
Copyright © 2011-2022 走看看