Toy と帽子と ADP BE

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

AtCoder Beginner Contest 157

3完2WA。まあ今回はこどふぉがあったので仕方ないこととす。

各問題

A - Duplex Printing

これは簡単な算数で、N / 2の切り上げですね。

B - Bingo

二次元配列を作って、数字が一致したマスに印をつけて(Aが1 <= A <= 100なので0とか-1とかを入れておけばいいです)、実際にビンゴしたかどうかif文で判定すればよいです。

C - Guess The Number

まず、答えが-1となる条件は

  • 同じsに対して違うcが入る
  • N != 1のとき、1桁目が0である

です。

そうでないときは、一通り条件をチェックして、指定があった桁はその数字、なかった桁は1桁目なら1、それ以外なら0を埋めればよいです。

ただしN == 1かつ指定がなかった場合は0です。

ところで、実は全探索の解法があったんですね。実戦中は全然気が付きませんでした。

そして自分は問題を誤読して、2WA・・・。

D - Friend Suggestions

まず、友達関係の連鎖は、UnionFindで管理できます。あとは、UnionFindで繋がっている人数を取ってきて、そこから自分を引き、自分と直接の友達の人数を引き、「自分と友人関係で繋がっている人の中で」自分と直接ブロック関係になっている人の数を引けばそれが答えです。

自分はUnionFindが使えることだけはすぐにわかりましたが、その先が全然思いつかず、こどふぉの時間になったのでここで離脱しました。

いやー、さすがにこれはダメでしょう自分・・・。落ち着いて考えればすぐわかりそうなものなのに。

まとめ

今回は自分の中ではこどふぉ優先だったので、まあ仕方ないと割り切れる結果ではあります。とはいえ、ちょっとAtCoderに対するモチベーションが落ち過ぎかなとも思います。

来週はARC級なので、気を引き締めなおしていきたいです。いつまでも緑に落ちてる場合でもないですし。

f:id:mdstoy:20200302230409p:plain