[ABC249E] RLE
题意翻译
给定一种字符串压缩算法:对于连续的相同字母,会压缩成 该字母 + 出现次数 的形式,例如 `aaabbcccc` 会被压缩成 `a3b2c4`,`aaaaaaaaaa` 会被压缩成 `a10`。
字符集为英文小写字母,给定 $ n, p $,求对于所有长度为 $ n $ 的字符串,有多少满足压缩后的字符串长度严格小于原字符串。对 $ p $ 取模。保证 $ p $ 为质数。
题目描述
[problemUrl]: https://atcoder.jp/contests/abc249/tasks/abc249_e
英小文字のみからなる文字列 $ X $ に対し、以下の手続きによって文字列を得ることを考えます。
- $ X $ を異なる文字が隣り合っている部分で分割する。
- 分割した各文字列 $ Y $ に対して、$ Y $ を $ Y $ を構成する文字と $ Y $ の長さを繋げた文字列に置き換える。
- 元の順番を保ったまま、置き換えた文字列をすべて繋げる。
例えば、`aaabbcccc` の場合、`aaa`,`bb`,`cccc` に分けられ、それぞれを `a3`,`b2`,`c4` に置き換え、その順番のまま繋げることにより `a3b2c4` を得ます。また、`aaaaaaaaaa` の場合、`a10` になります。
長さ $ N $ の英小文字のみからなる文字列 $ S $ のうち、上記の手続きによって得られた文字列 $ T $ との長さを比べたとき、$ T $ の方が短いものの個数を $ P $ で割ったあまりを求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ P $
输出格式
答えを出力せよ。
输入输出样例
输入样例 #1
3 998244353
输出样例 #1
26
输入样例 #2
2 998244353
输出样例 #2
0
输入样例 #3
5 998244353
输出样例 #3
2626
输入样例 #4
3000 924844033
输出样例 #4
607425699
说明
### 制約
- $ 1\ \le\ N\ \le\ 3000 $
- $ 10^8\ \le\ P\ \le\ 10^9 $
- $ N,P $ は整数
- $ P $ は素数
### Sample Explanation 1
$ 1,2,3 $ 文字目が全て等しい文字列のみが条件を満たします。 例えば、`aaa` は `a3` となり条件を満たしますが、`abc` は `a1b1c1` となり条件を満たしません。
### Sample Explanation 2
`aa` → `a2` のように、長さが等しいものは条件を満たさないことに注意してください。
### Sample Explanation 3
`aaabb` や `aaaaa` などが条件を満たします。
### Sample Explanation 4
条件を満たす文字列の個数を $ P $ で割ったあまりを求めてください。