#agc020e. [agc020_e]Encoding Subsets
[agc020_e]Encoding Subsets
题目描述
考虑以下关于由 0
和 1
组成的字符串编码的规则集:
- 字符串
0
和1
可以分别编码为0
和1
。 - 如果字符串 和 分别可以编码为 和 ,那么字符串 可以编码为 。
- 如果字符串 可以编码为 ,且 是一个正整数,那么字符串 ( 重复 次)可以编码为
(
x
)
。
例如,字符串 001001001
可以编码为 001001001
、00(1(0x2)x2)1
和 (001x3)
。
我们称字符串 是字符串 的子集,如果:
- 和 的长度相等,并且由
0
和1
组成; - 对于所有满足 =
1
的下标 ,都有 =1
。
给定由 0
和 1
组成的字符串 ,求 的所有子集的不同编码方案的总数,对 取模。
约束条件
- 由
0
和1
组成。
输入
从标准输入读入输入数据,格式如下:
输出
打印 的所有子集的不同编码方案的总数,对 取模。
示例输入 1
011
示例输出 1
9
有四个子集:
011
可以编码为011
和0(1x2)
;010
可以编码为010
;001
可以编码为001
和(0x2)1
;000
可以编码为000
、0(0x2)
、(0x2)0
和(0x3)
。
因此, 的所有子集的不同编码方案的总数为 。
示例输入 2
0000
示例输出 2
10
这次 只有一个子集,但是可以用 种不同的方式进行编码。
示例输入 3
101110
示例输出 3
156
示例输入 4
001110111010110001100000100111
示例输出 4
363383189
记得对 取模。