No.2943 Sigma String of String Score Problem
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 128 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 59
作問者 : kazuppa / テスター : highlighter Magentor hirayuu_yc
タグ : / 解いたユーザー数 59
作問者 : kazuppa / テスター : highlighter Magentor hirayuu_yc
問題文最終更新日: 2024-10-18 21:20:00
裏話
実はこれが思いついた直前にプ●●●のF●●●r!のA●●●●DをAPしたのよ。
初A●●●●D 30のAPだったからうれしかったわけ。 で、でよ。この時思ったんだけど、 ・AP ・A●●●●D ・kazuppa これ全部AP
みたいなのが含まれてるじゃんって。
問題文
この問題は0-indexedで考えます。
$F(s,t,i)$ を次のように定義します。- 文字列 $u$ があります。始めは空です。
- $j=0,1,...\ ,|s|-1$ について、もし $2^j\lor i=i$ なら $u$ の末尾に $s_j$ を追加します。
- つまり、 $i$ を2進数表記したときに $j$ 桁目が $1$ なら、$u$ の末尾に $s_j$ を追加するということです。
- そして、 $F(s,t,i)$ は上記の操作によってできた $u$ の部分文字列に含まれる $t$ の個数です。
aabc
,ac
$, 11)$ においての $u$ は aac
となります。
そして、$u$ に ac
という部分文字列は $2$ つ含まれているので、 $F($aabc
,ac
$, 11)=2$ となります。
このとき、文字列 $S$ と $T$ が与えられるので、 $\displaystyle\sum_{i=0}^{2^{|S|}-1} F(S,T,i)$ を $998244353$ で割った余りを求めてください。
なお、この問題において部分文字列を、文字列から $0$ 個以上の要素を取り除いた後、残りの要素を元の順序で連結して得られる文字列と定義します。
入力
入力は以下の形式で標準入力から与えられる。$S\ T$
制約
- $1\leq |T|\leq |S| \leq 10^5$
- $|T|\leq 10^3$
- $S,T$ はともに英小文字からなる
出力
最後に改行してください。
サンプル
サンプル1
入力
aab ab
出力
4
例えば $i=0$ のとき、 $u=$(空)となります。
$u$ の部分文字列に含まれる
ab
の個数は $0$ です。
ab
となります。
$u$ の部分文字列に含まれる ab
の個数は $1$ です。
こんな感じで考えていったとき、答えは $0+0+0+0+0+1+1+2=4$ となります。
サンプル2
入力
abc abd
出力
0
答えが $0$ の可能性もあります。
サンプル3
入力
kazuppa ap
出力
64
スコアはまあまあですね。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。