No.2219 Re:010
タグ : / 解いたユーザー数 134
作問者 :
 stoq
            
            / テスター :
            
            👑
stoq
            
            / テスター :
            
            👑  Kazun
Kazun
            
            問題文
            '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もしくは右上の雲マークをクリックしてアカウントを作成してください。
