Educational Codeforces Round 70

スポンサーリンク

A. You Are Given Two Binary Strings…

$y$ の最下位ビットを $x$ のなるべく下位のビットと重ねます.

B. You Are Given a Decimal String…

各 $2$ 文字の間の最小コストを求めます.

C. You Are Given a WASD-string…

何もしない場合の座標列を求め,prefix, suffix での区間 min, max を求められるようにしておけば,各場所に挿入した場合の結果を計算できます.

D. Print a 1337-string…

$133333333\cdots$ の適当なところに $7$ を挿入していくと,三角数の和を実現できます.

E. You Are Given Some Strings…

$t$ のある境界について,そこから左に現れる $s_i$ や右に現れる $s_j$ を数えられればよいです.

reverse して 2 回解くことで,後者を数えられればよいです.

すべてを結合した文字列 $ALL$ に関する suffix array をとれば,$s_j$ を含む $ALL$ の suffix 全体が区間で表されます.この区間に値を足しこんで,各 $t$ の suffix の値を読み取る感じでできます.

F. You Are Given Some Letters…

周期がいくつあるかを決めると周期の長さの範囲を求められます.周期内の A の個数を i として $\lfloor a/i\rfloor$ 程度なので,$O(\sqrt{a})$ 個の候補をすべて計算します.

CodeForces
スポンサーリンク
シェアする
maspyをフォローする
maspyのHP
タイトルとURLをコピーしました