Toy と帽子と ADP BE

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

AtCoder Beginner Contest 121

各問題

A - White Cells

算数の問題。しかも問題に

なお、残る白色のマス目の数は行や列の選び方によらないことが証明できます。

って親切に書いてくれています。

B - Can you solve this?

公式解説は二次元配列を作るといいでしょうとされていて、確かにその方が思わぬミスは減るのでより安全だと思います。

ただ、状況にもよりますが、個人的に二次元配列を作る方が混乱することがあるので、こういうのはループ中に入力を取りたい派だったりします。

https://atcoder.jp/contests/abc121/submissions/4517069

C - Energy Drink Collector

ソートはあるけど、B問題っぽい?

お店を金額の安い順にソートする必要があるので、先ほどと同じように二次元配列で混乱しないようにしたくてわざわざクラスを定義しました。

https://atcoder.jp/contests/abc121/submissions/4520837

ぬるいっちゃぬるいですが、まあそこまで時間を気にするようなレベルでもないので、今の所、このへんは読みやすさ重視で書くようにしてます。 あと、long にするのは忘れなかったです。えらいw

追記

ていうか、こういうペアを扱うときは(Tree)Map でよかったというお話。 ただし、Mapを使う場合はキーが重複するときどうするかを考慮する必要がありますね。

せっかくなので、TreeMap版も実装して提出しました。

https://atcoder.jp/contests/abc121/submissions/4531121

D - XOR World

結局約半数が WA で完答できず。

https://atcoder.jp/contests/abc121/submissions/4527933

うーん、へんてこな実装ではありますが、これで通るものもあれば通らないものもあるのがなぜなのか・・・。 とりあえず a = 0 のときだめっぽい?なんか法則が崩れる条件がある?それとも単に実装の問題?

ともあれ、XOR のような頻出問題で公式解説にあるような性質をうまく見つけたり使いこなしたりできないとつらいですね。

まとめ

C問題まで順調に解けたし、D問題も提出には至ったのでよし。

なにより、色が付いたので今回はよし!

次の目標は緑で。

f:id:mdstoy:20190309232812p:plain