2020/12/5に開催された鹿島建設プログラミングコンテスト2020 (AtCoder Regular Contest 110)に参加しました。
現レートは790。緑まであと10というとこだったので、今回でなんとか緑復帰ができればなーという感じで臨みました。
参加します。なんとか緑に復帰できるよう頑張ります。
— devgenjin77 (@devgenjin77) 2020年12月5日
鹿島建設プログラミングコンテスト2020(AtCoder Regular Contest 110) - AtCoder https://t.co/4Ehp91XYY9
今回の結果
で、今回は2完というなんとも微妙な結果となりました。
んで、緑の下の方のパフォーマンスだったので、レーティングは少し上昇するも入緑ならずという、これまたなんとも微妙な結果で終了です。
devgenjin77さんの鹿島建設プログラミングコンテスト2020(AtCoder Regular Contest 110)での成績:2100位
— devgenjin77 (@devgenjin77) 2020年12月5日
パフォーマンス:848相当
レーティング:790→796 (+6) :)#AtCoder #鹿島建設プログラミングコンテスト2020(ARC110) https://t.co/0NHTcMIMg1
2完緑パフォ。緑復帰まであと少しです。
振り返り
B問題で相当手こずってしまい、あとの問題に回す時間がなくなってしまいました。
A問題
2からまで掛け合わせた数に1足せばOK。。と思ったらのときに解答の上限であるを超えてしまうことに気づく。
なんとかこれを小さくできないかと色々試行錯誤した結果、30以下の素数を1回ずつ掛け合わせて、あとは素数の階乗になる数に対応するため、2を3回、5を1回追加で掛け合わせた数に1足した数を出力することで、ACが取れました。
もう関係ないやんw
公式解説をみると、最小公倍数を求めるとあり、あーそういう狙いの問題だったんだねーと気づきました。まあ確かにそのやり方が王道だよな。
B問題
のときがコーナーケースでなら、ならを返す。
で、あとは以上の長さになるように110を連結した文字列を生成して、contains関数でが含まれているかどうかを確認。含まれている場合は、を場合分けして出力すればOK。。。と、思ってましたが、サンプルが通る実装を投げてみたら、ものの見事にWAを喰らってしまいました。
検討したところ、場合分けの考慮が足りなかったので、が"11"、“10”、”01”それぞれで始まるケースを考慮し、それぞれについてに0、1、2を足してあとは3で割った数を切り上げた数をから引くという解法でACが取れました。
とまあ書くだけなら簡単ですが、本番では結構試行錯誤してしまい、結局この問題で1時間もとられてしまいました。。
C問題
一番でかい数字から右端に寄せていく手順を繰り返して、同じ操作が2回出てきたらソート不可能という感じで解けるかなーという考察。
が、、考察が終わったところで残り20分足らず。結局頑張って実装してみたが、サンプルが通る実装もできずで、無念の時間切れとなりました。
これが通れば余裕で緑復帰となったところですが、如何せん実装力もまだまだ及ばないようです。
D問題
D - Binomial Coefficient is Fun
問題すら見れてません。
E問題
問題すら見れてません。
F問題
問題すら見れてません。
これまでの実績
今回、緑復帰はおあずけとなりました。最近800付近のパフォーマンスで安定してしまっているので、緑以上で安定するにはもう少し精進が必要ですね。
総括
今回のARCもなんとか2完緑パフォという結果でしたが、今後緑以上を目指すためにはARCだと3完以上が求められるなーという感じがします。過去のARCのC以上の過去問も積極的に解いていこうと思います。
また、次回も頑張ります。