2021/9/26に開催された AtCoder Beginner Contest 220に参加しました。
一時のレートの下落傾向は止まったものの、ここ最近のABCは3完止まりが続いているので、そろそろ4完の壁を超えようという気持ちで臨むこととしました。
参加します。3完続きなので、今回はそこを越えられるように頑張りたいと思います。
— devgenjin77 (@devgenjin77) 2021年9月26日
AtCoder Beginner Contest 220 - AtCoder https://t.co/e5FMv00XJE
今回の結果
そして今回は久々の4完達成!!なんとか有言実行という形になりました。
とはいえ、パフォーマンスは緑の下位程度。
4完だったのは問題に恵まれただけなのかもしれません。
が、結果はでたので細かいことは良しとしましょう。
久々の4完!緑パフォで連勝となりました。
— devgenjin77 (@devgenjin77) 2021年9月26日
緑復帰に向けて次も頑張ります。
devgenjin77さんのAtCoder Beginner Contest 220での成績:2720位
パフォーマンス:872相当
レーティング:701→719 (+18) :)#AtCoder #ABC220 https://t.co/rZO7JXi78x
振り返り
Cで少しやらかし、無駄に順位を下げてしまいました。
A問題
問題を一読して、なんかうまいやり方もありそうかと思いましたが、とりあえず早く提出することを優先しました。
からの範囲をfor文で全探索し、の倍数があればそれを返却、なければを返却することでACが取れました。
提出コード
https://atcoder.jp/contests/abc220/submissions/26125384
B問題
問題文の通り、愚直に進数の計算を行いました。これも問題なくAC。
しかし、後程見直してみると、Javaには進数変換の機能が標準ライブラリにあるので、それを活用したほうがよかったかなーと。。
提出コード
https://atcoder.jp/contests/abc220/submissions/26132336
C問題
まともに1つずつ計算するとTLEになる系の問題。
まずはを数列の合計で割った答えを倍する。
あとは、をで割った余りをもとめ、そこからの先頭から引いていき、答えが0未満になったら、これまで引いた要素数を答えに足す。
という解法でよかったはずが、0未満のところを0以下と誤った解釈をしてしまい、WAを食らってしまいました。。
問題文はちゃんと読まないといけないねと反省しながらなんとかACを取りました。
提出コード
https://atcoder.jp/contests/abc220/submissions/26141980
D問題
実はこの問題も最初問題文の読み間違いがあり、操作が左端の要素を、操作が右端の要素を操作するのかと勘違いしてました。
で、全く解法の想像がつかない状態でしたが、操作とも左端の要素に対する操作ということに気付いたら、DPで解くやつだということがわかりました。
操作が番目まで進んだ時に、左端の数字がとなる場合の数
とし、あとは操作の場合、の場合それぞれの遷移を書くことで答えを求めることができました。
コンテスト中にDPを通したのはほんと久しぶりな気がします。
久々の4完目のAC。
提出コード
https://atcoder.jp/contests/abc220/submissions/26155922
E問題
E - Distance on Large Perfect Binary Tree
チラ見したけど、何も分からずで早々に退散。
F問題
EよりFの方がAC多めだったので、なんとかなるかと思ったものの、結局実装方針すらよくわからず。結局、なにもできないまま時間切れになりました。
うーむ、、今後はグラフ問題も重点的に予習しておく必要があるな〜。。
G問題
問題すら見れておりません。
H問題
問題すら見れておりません。
これまでの実績
なんとかグラフが右肩上がり模様になっております。この勢いで緑復帰まで持っていきたいものです。
総括
久々の4完達成ですが、パフォーマンスは緑の下の方。今回は問題のレベルに多少救われたのかもしれません。
やはり、緑diffぐらいの問題を安定して解けないとこれ以上上がれないような気がします。今後も緑diff近辺の問題を中心に精進を重ねていきたいと思います。
ということで、また次回も頑張ります。