Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Regular Contest 156

1完2WA。

各問題

A - Non-Adjacent Flip

まず、表のコインが奇数枚のときすべて裏にすることはできません。表表 -> 裏裏で -2、裏裏 -> 表表で +2、表裏 -> 裏表で増減なしなので、どのような i, j を選んでも表の数の偶奇は変化しないからです。

表が0枚のときはもちろん0です。

また表の数が4枚以上の偶数なら必ず 表の数 / 2 で操作を完了することができます。表の1枚目と3枚目、2枚目と4枚目という具合に選べば j - i >= 2 を満たせます。

表の数が2枚のとき、表のコインが離れていれば j - i >= 2 は満たされているので1回で操作完了です。表のコインが隣り合わせの場合はコーナーケースが2つあります。まずコインが3枚のときは真ん中のコインを裏返す手段がないので完了できません。コインが4枚で 0110 の形のときは 1100 -> 1001 -> 0000 という具合に3回の操作が必要となります。それ以外のケースではどちらかの表と十分に離れた場所の裏を初回で選択することで、2回で操作を終えることが可能です。1100 -> 1001 -> 0000 という要領です。

"0110" に気づかず1WAと、そのロジックを追加したときに continue を書き忘れてもう一つ WA 追加...。

B - Mex on Blackboard

とりうる MEX はわかるのですが、数え上げる方法がさっぱりわからず...。

まとめ

なんとか水パフォは取れました。明日の ABC で水色復帰となるか。