No.2219 Re:010
タグ : / 解いたユーザー数 130
作問者 : stoq / テスター : Kazun Shirotsume
問題文
'0
' と'1
' のみから成る文字列 $X$ に対し、
$f(X)$ を $X$ に部分列(連続でなくてもよい) として含まれる $\mathsf {010}$ の個数と定めます。
ただし部分列は取り出した位置で区別します。
'0
', '1
', '?
' のみから成る文字列 $S$ が与えられます。
$S$ の全ての '?
' を '0
' または '1
' に置き換え、文字列 $S'$ を作ります。
このような $S'$ は $S$ に含まれる'?
' の個数を $c$ として $2^c$ 通りありますが、それらすべてに対する $f(S')$ の総和を求めてください。
答えは非常に大きくなることがあるので、$998244353$ で割った余りを出力してください。
入力
$S$
- $S$ は '
0
', '1
', '?
' のみから成る文字列 - $1 \leq |S| \leq 2 \times 10^5$
出力
考え得る $S'$ 全てに対する $f(S')$ の総和を $998244353$ で割った余りを出力してください。
サンプル
サンプル1
入力
01?0
出力
4
$S'$ としてあり得るものは $\mathsf {0100,\ 0110}$ です。
$f(\mathsf {0100})+f(\mathsf {0110})=2+2=4$ です。
サンプル2
入力
0
出力
0
'?
' が1つも含まれない場合や、解が $0$ になる場合もあります。
サンプル3
入力
??????????
出力
15360
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。