キャディプログラミングコンテスト2021(AtCoder Beginner Contest 193) 参加記

2021/2/27に開催されたキャディプログラミングコンテスト2021(AtCoder Beginner Contest 193)に参加しました。

atcoder.jp

先週の土日は立て続けにコンテストに参加しましたが、いずれも残念な結果で茶色レートに沈んでしまいました。今回はレートのことはとりあえず置いといて、初心に立ち返って臨むことにしました。

今回の結果

で、今回の結果は3完というなんとも微妙な結果になりました。

ABC193結果

ABC193結果

それでも、Cまでが早めに解けてたおかげか緑パフォーマンスを達成し、なんとかレートは少しプラスとなりました。

振り返り

Cまでは順調でしたが、Dで大きくつまづいてしまいました。

ABC193提出結果

ABC193提出結果

A問題 

A - Discount

入力をdoubleで取り、以下の計算で出力してACが取れました。

gist3283dd1e0918020532da4e1699d3a657

B問題

B - Play Snuke

 A_i \lt X_iであるレコードのP_iの最小値を出力すれば良い。これも問題なくAC。

C問題

C - Unexpressed

N以下で且つa^bで表せる値の数をNから引けば良い。

a^bで表せる値の数は、a \le \sqrt{N}の範囲で全探索して求めればよく、Setを使って重複カウントを避ければOK。これも問題なくAC。

D問題

D - Poker

苦手な数学系の問題。なおかつ、あまり慣れていない確率計算の問題だったので、だいぶ戸惑いましたが、解法についてはなんとか早めに方針が立ちました。

高橋くん、青木くんがそれぞれ1〜9のカードを引く場合の数を求める。あとは手札の点数を計算する関数を実装して、高橋くんと青木くんの点数を比較。高橋くんが勝ったケース数を計算して、全ての場合の数を分母にして計算すればOK。

 

と、思いきや、サンプルのうちなぜか3だけが通らない。。

 

結構難し目の4が通って、3だけが通らない謎の展開。色々デバッグをしてみたり、あとは分母の計算を変えてみたりしてみたが、今度は3以外が通らなかったりと散々な内容。結局苦し紛れに投げてWAを1回喰らったのを最後に提出できず、時間切れとなりました。

あとでよくよく考えると、そもそも分母の計算方法が間違っているようでして、このあたり、自分の数学オンチが祟ったというところでした。 

E問題 

E - Oversleeping

Dがあまりにも解けないので、Eに少し浮気しましたが、やはりちんぷんかんぷんだったので、早々に諦めました。

F問題

F - Zebraness

問題文をチラ見しましたが、よくわかりませんでした。

これまでの実績

ここ最近下げ気味だったレートが少し戻りましたが、まだまだ停滞ムードは抜けていないようです。

コンテスト実績

コンテスト実績

総括

今日のDも通せなかったのはだいぶ残念でしたが、今回は自分の弱点がまた一つわかったので、これを機会に確率系の問題も重点的に対策しようと思います。

また、次回も頑張ります。