Toy と帽子と ADP BE

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

AtCoder Beginner Contest 132

ABCの3完で、気分的には大惨敗ですね。今回は水色入りを狙っていただけに。

各問題

A - Fifty-Fifty

問題の意味はわかるんですけど、最短の実装法がすぐに浮かばず。

そこで悩んでいても時間がもったいないので、最初に浮かんだ方法、アルファベットの数の26要素のint配列を作って、出現した文字の要素をインクリメントして、最後に26個それぞれ要素がすべて0か2ならYes、それ以外の数が入っていればNoという実装をしました。ループが必要になるので、たぶんちょっと回りくどい実装のはずです。

あーでもeditorialの解法も(A問題にしては)思ったほど軽くはないですね。

B - Ordinary Number

愚直に{p1, p2, p3}, {p2, p3, p4}, ... と見ていけばよいです。ちなみに私はmaxでもminでもないとき条件を満たす、という実装をしました。不等式怖い・・・。

C - Divide the Problems

まず入力を取ってきてソートします。

で、真ん中のふたつ、つまりN / 2番目とN / 2 + 1番目の数が同じである場合、きれいに半分に分けることはできません。その数がどっちか片方に入るので偏りが出ます。なのでこの場合は0です。 異なる場合、単にそれを引けば答えになります。

ていうか今気づいたんですけど、真ん中のふたつが同じ数のとき、引いたら0になるから結果的には場合分け要りませんでしたねこれ。まあこういうケースが例外的な値になってWAをもらうこともあるので、あらかじめ考察しておくのは悪いことではない、はず。

D - Blue and Red Balls

ふんわりとはわかったんですけど、きっと使うはずと思ってnCrのライブラリもコピペしたんですけど、組み合わせの作り方が結局最後までわからずじまいでした。なさけない。

EとF

チラ見しただけ。

まとめ

相変わらず数学力のほうがネックになっているような気がします。あと、不得手な領域がまだまだ多いので安定しません。今後は苦手な問題を集中的に潰していったほうがいいのでしょうか・・・。

3完なのにパフォ4桁に乗っていて、レートは微減で済みました。Cまでの早解きはできていたのでなんとか助かった感じです。

f:id:mdstoy:20190629233108p:plain