#agc020e. [agc020_e]Encoding Subsets

[agc020_e]Encoding Subsets

题目描述

考虑以下关于由 01 组成的字符串编码的规则集:

  • 字符串 01 可以分别编码为 01
  • 如果字符串 AABB 分别可以编码为 PPQQ,那么字符串 ABAB 可以编码为 PQPQ
  • 如果字符串 AA 可以编码为 PP,且 Kgeq2K \\geq 2 是一个正整数,那么字符串 AA...AAA...AAA 重复 KK 次)可以编码为 (PPxKK)

例如,字符串 001001001 可以编码为 00100100100(1(0x2)x2)1(001x3)

我们称字符串 AA 是字符串 BB 的子集,如果:

  • AABB 的长度相等,并且由 01 组成;
  • 对于所有满足 AiA_i = 1 的下标 ii,都有 BiB_i = 1

给定由 01 组成的字符串 SS,求 SS 的所有子集的不同编码方案的总数,对 998244353998244353 取模。

约束条件

  • 1S1001 \leq |S| \leq 100
  • SS01 组成。

输入

从标准输入读入输入数据,格式如下:

SS

输出

打印 SS 的所有子集的不同编码方案的总数,对 998244353998244353 取模。

示例输入 1

011

示例输出 1

9

SS 有四个子集:

  • 011 可以编码为 0110(1x2)
  • 010 可以编码为 010
  • 001 可以编码为 001(0x2)1
  • 000 可以编码为 0000(0x2)(0x2)0(0x3)

因此,SS 的所有子集的不同编码方案的总数为 2+1+2+4=92 + 1 + 2 + 4 = 9

示例输入 2

0000

示例输出 2

10

这次 SS 只有一个子集,但是可以用 1010 种不同的方式进行编码。

示例输入 3

101110

示例输出 3

156

示例输入 4

001110111010110001100000100111

示例输出 4

363383189

记得对 998244353998244353 取模。