【色変記事】AtCoder水色になりました

cover

先日のコンテストで水色コーダーになることが出来たので、いままでやってきたことなどまとめます。

いいたいこと

  • 継続した人が強くなる!
  • レートを上げたいならとにかく Rated で大会に出ろ!

自己紹介

情報系の大学 3 年生です。 普段は、趣味の個人開発をしたり、プログラミング系のバイトをしたりしています。 競技プログラミングは大学 1 年の夏に始めました。

使用言語は半年ほど前までは Python のみ、最近は Python と Rust の併用です。

水色になるまでにやったこと

レート 800 ~ 1000

モチベについて

この時期はかなりサボりがちだったのですが、それによってレーティングが上がらず、さらにモチベーションが下がるという負の連鎖が続いていました。

精進は適度にしていたのですが、やはり毎回コンテストに出なかったのがレートが上がらない要因でした。 この点はちょっと反省。

言語について

また、この時期から Rust の練習を始めました。 コンテストで使えるほどの練度になるには大体 3 ヶ月程度かかっていますが、 今考えるとこの時期に Rust を始めておいたのは良い選択だったように思います。

水色になるためには E 問題を安定して解けるようになる必要がありますが、 使える言語が Python だけだと実行時間がきついとか、 OrderedSet が欲しいっていう時に詰んでしまう可能性があるのでかなり勿体無いです。

競技プログラミングでどの言語を使うべきか論争みたいなのが定期的に勃発しますが、 単一の言語を使う前提で議論されているのがあまり腑に落ちていません。 せっかく沢山選択肢があるんだから、それぞれの強みを活かせるように使い分ければいいじゃんって思います。

個人的には、A~C を Python、D 以降を Rust で解くのが早解きとの兼ね合いとしてもベストかなと思います。

レート 1000 ~ 1200

EDPC

この時期にやって一番効果があったのはEDPC埋めでした。

1 日 1〜2 問のペースで解いたのですが、いままで勘で書いていた漸化式を論理的に構築できるようになり、 かなり成長を実感しました。

DP は 400~500 点あたりの問題に配置されることが多いので、このあたりの問題を早く確実に解けるのは 水色を目指す上ではかなりクリティカルなのかなと思います。

考察の仕方について

また、難しめの問題を時間をかけて考察する精進スタイルも取り入れました。

具体的には、

  1. AtCoder Problems の Recommendation の Difficult 問題から問題を選ぶ
  2. メモ帳に問題文と制約をかき、自分で解説を書くつもりで考察を書き込む
  3. 丁寧に実装する

の 3 段階です。

下はABC043 D - アンバランス をこのやり方で解いてみたものですが、 これでもかというくらい丁寧に書くと、自分の思考の抜け漏れも知ることができかなり有効だと思います。

自分は考察に Notion を使っているのですが、 Notion を使って考察する場合は AtCoder to Notionという Chrome 拡張機能が非常に便利でおすすめです。

最後に

言いたいことは以上です。よい AtCoder ライフを!