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級なので、気を引き締めなおしていきたいです。いつまでも緑に落ちてる場合でもないですし。