#4293. RLE

0

RLE

RLE

题目描述

考虑以下过程:给定一个由小写英文字母组成的字符串 XX,得到一个新字符串:

在相邻字符不同的位置把字符串 XX 切分开。 对于每个被切分出来的字符串 YY,用由 YY 所由组成的字符以及 YY 的长度构成的字符串来替换 YY。 按原顺序将替换后的字符串连接起来。

例如,aaabbccccaaabbcccc 被分成 aaaaaa、bbbb、cccccccc,它们分别被替换为 a3a3、b2b2、c4c4,然后按原顺序连接,得到 a3b2c4a3b2c4。如果给定字符串是 aaaaaaaaaaaaaaaaaaaa,新字符串是 a10a10。 求满足以下条件的长度为 NN 的由小写英文字母组成的字符串 SS 的数量(模 PP),其中对于字符串 SS,用上述过程得到的字符串记为 TT,并且要求 TT 的长度小于 SS 的长度。

输入格式

从标准输入给出输入,格式如下: NN PP

输出格式

输出答案。

3 998244353
26
2 998244353
0
5 998244353
2626
3000 924844033
607425699

提示

1≤N≤30001 \le N \le 3000 108≤P≤10910^8 \le P \le 10^9 NN 和 PP 是整数。 PP 是素数。当字符串的第 1、2、3 个字符都相同时,它们满足条件。 例如,aaaaaa 会变成 a3a3,满足条件,而 abcabc 会变成 a1b1c1a1b1c1,不满足条件。
注意如果一个字符串被变换为相同长度的字符串,例如 aaaa 变成 a2a2,则不满足条件。
像 aaabbaaabb 和 aaaaaaaaaa 这样的字符串满足条件。
求满足条件的字符串数量模 PP。

标签: AtCoder|abc249E

来源

AtCoder|abc249E