【色変記事】AtCoder水色になりました
先日のコンテストで水色コーダーになることが出来たので、いままでやってきたことなどまとめます。
いいたいこと
- 継続した人が強くなる!
- レートを上げたいならとにかく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点あたりの問題に配置されることが多いので、このあたりの問題を早く確実に解けるのは 水色を目指す上ではかなりクリティカルなのかなと思います。
考察の仕方について
また、難しめの問題を時間をかけて考察する精進スタイルも取り入れました。
具体的には、
- AtCoder ProblemsのRecommendationのDifficult問題から問題を選ぶ
- メモ帳に問題文と制約をかき、自分で解説を書くつもりで考察を書き込む
- 丁寧に実装する
の3段階です。
下はABC043 D - アンバランス をこのやり方で解いてみたものですが、 これでもかというくらい丁寧に書くと、自分の思考の抜け漏れも知ることができかなり有効だと思います。

自分は考察にNotionを使っているのですが、 Notionを使って考察する場合は AtCoder to NotionというChrome拡張機能が非常に便利でおすすめです。
最後に
言いたいことは以上です。よいAtCoderライフを!