atcoder#ABC299F. [ABC299F] Square Subsequence

[ABC299F] Square Subsequence

配点 : 500500

問題文

英小文字のみからなる文字列 SS が与えられます。 下記の条件を満たす空でない文字列 TT の個数を 998244353998244353 で割ったあまりを出力してください。

TT22 つ連結して得られる文字列 TTTT が、SS に(連続とは限らない)部分列として含まれる。

制約

  • SS は英小文字のみからなる長さ 11 以上 100100 以下の文字列

入力

入力は以下の形式で標準入力から与えられる。

SS

出力

答えを出力せよ。

ababbaba
8

問題文中の条件を満たす文字列 TT は、aaaabababbababbb88 個です。

zzz
1

問題文中の条件を満たす文字列 TT は、z のみです。 S=S1S2S3=S = S_1S_2S_3 = zzz から、文字列 zz を部分列として得る方法は、 S1S2=S_1S_2 = zzS1S3=S_1S_3 = zzS2S3=S_2S_3 = zz33 通りありますが、文字列 z は答えに 11 回だけ寄与することに注意してください。

ppppqqppqqqpqpqppqpqqqqpppqppq
580