C. 不循环分割 (partition)

    Type: Default File IO: partition 1000ms 32MiB

不循环分割 (partition)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

请注意本题的空间限制。

小 Y 对字符串很感兴趣,他定义一个长度为 nn 的字符串 SS (下标为 0,1,,n10,1,\dots,n-1)是循环的,当且仅当符合以下条件:

  • 字符串 SS 的长度大于 11 ,即 n>1n>1,并且

  • 存在某个正整数 k[1,n)k\in [1,n),满足 kknn 的约数,并且对于任意的 i[0,n)i\in [0,n) 都有 Si=SimodkS_i=S_{i\mod k}

这里 SiS_i 表示字符串 SS 中下标为 ii 的字符。

小 Z 也对字符串很感兴趣,他定义一个长度为 nn 的字符串 SS 的划分为数列 {p1,p2,,pk}(k2)\{p_1, p_2, \cdots , p_k\} (k \ge 2),满足 p1=0,pk=np_1=0,p_k=n,且对于任意 i[2,k]i\in [2,k] 都有 pi>pi1p_i>p_{i-1}。这样可以看作把字符串 SS 划分成了若干段,每一段的形式为第 pip_i 个字符到第 pi+11p_{i+1}-1 个字符。两个分割不同,当且仅当对应的数列不同。

小 Y 和小 Z 一拍即合,定义了不循环分割。称一个分割是不循环分割,当且仅当分割中的每一段都不是循环的。现在他俩想知道,给定字符串 SS,有多少种不同的不循环分割?答案对 998244353998244353 取模。

输入格式

partition.in 文件读入数据。

一行一个小写字母构成的字符串 SS

输出格式

输出到 partition.out 文件。

输出一个整数,代表答案,对 998244353998244353 取模。

样例 1

aab
3

对于样例 1,三种可能的划分是:

  1. {0, 1, 2, 3} , 被分成了’a’ + ’a’ + ’b’ 。
  2. {0, 1, 3} , 被分成了 ’a’ + ’ab’ 。
  3. {0, 3} , 整串保留,作为一种划分。

样例 2

点击链接 ex_partition2.inex_partition2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于每个测试点, 字符串 SS 的长度不超过 5×1035\times 10^3

子任务 分数 附加约束条件
11 1010 SS 全部由 ‘a' 构成
22 4040 SS 的长度不超过 100100
33 5050 无附加限制

NOIP1测

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-11-6 13:30
End at
2024-11-6 17:30
Duration
4 hour(s)
Host
Partic.
8