atcoder#ABC200F. [ABC200F] Minflip Summation
[ABC200F] Minflip Summation
配点 : 点
問題文
0
, 1
, ?
のみからなる文字列 があります。この文字列を 個連結したものを とします。
この文字列の ?
を全て 0
か 1
に置き換えた文字列は、 の中に含まれる ?
の数を 個とすると、全部で 通り考えられますが、その全てについて以下の問題を解いて、その答えの和を で割った余りを求めてください。
?
を置き換えた後の文字列を とします。 に以下の操作を繰り返し行うことで全ての文字を同じにするとき、必要な最小の操作回数は何回ですか?
- となる整数 を選ぶ。そして、 の 文字目から 文字目(両端含む)までの各文字を、
0
であれば1
に、1
であれば0
に変更する。
制約
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを整数として出力せよ。
101
2
2
文字列 101101
で、ここには ?
が含まれません。よって、考えられる唯一の 101101
についての答えを求めればよいです。
例えば、101101
110011
111111
と操作を行えば、 回で全ての文字列を同じにすることができます。
回以下の操作で全ての文字列を同じにすることはできません。
?0?
1
3
文字列 として考えられるものは 000
, 001
, 100
, 101
の 通りです。
10111?10??1101??1?00?1?01??00010?0?1??
998244353
235562598
答えは非常に大きくなることがあるので、 で割った余りを求めてください。