黄色達成時のデータ
自己紹介
大学生です。学部3年です。競プロは大学入学後すぐにに存在を知って、それから半年くらい経った後にふとやる気が出たので始めました。
〜青色になるまで
あんまり覚えてないです。どの色の時も「1色から2色上の問題で使うアルゴリズム・データ構造をふんわり理解して、1色から2色上の過去問をたくさん解く。」を繰り返して青色になった気がします。
青色〜
青Diffあたりから要求される知識や発想が重たくなるように感じたので、まずはABCのコンテスト中に青Diffをしっかり通せるように青Diffを集中的に解きました。
青Diffがそこそこ通せるようになってからは黄Diffをメインに解きました。
言語選択
自分はPythonメインで競プロを今までやってきました。C++を使っていない理由は正直乗り換えが面倒というのが1番の理由です。それでも、C++を少しは書けるようにしているのでコンテスト中や精進中に困ったことはあまりないです。今Pythonを使っていてC++への乗り換えを検討している人には、C++をサブ言語のようにすることをおすすめしたいです。
ただ、ICPCのチームの関係で今後はC++も今のPythonと同じくらい書けるようにしたいと思っています。
おすすめコンテンツ
はい、本題です。自分が競プロをしてきて実際に使ったおすすめコンテンツを紹介していきます。超有名なものには触れないです。
AtCoder Extension
AtCoder上の問題のurlの一部を入力することでいい感じにフォルダを作成して、あらかじめ用意したテンプレートファイルをいい感じにコピーして、問題のサンプルケースをダウンロードしていい感じに配置してくれます。とにかく綺麗にまとめてくれます。あと提出もできます。
(AtCoder生成AI対策ルール - 20240607版には、「空ファイルを作成する、もしくは問題文に依らず同じファイルを作成するツールは許容されます。」、「問題ページでコピーボタンが表示される項目は、任意の場合においてコピーが許されます」と書いてあるので、現状この拡張機能はルールに反していないと考えています。)
この拡張機能で簡単に手元でサンプルを試すことができ、Debug Taskを使うことでサンプルを用いてVScodeのデバッグ機能を使うことができるのでおすすめです。
何より、VSCodeさえあれば拡張機能の欄からすぐに導入できるので、競プロ始めたてで、パソコンよくわからない自分にはめちゃくちゃありがたかったです。
Atcoder Gacha
AtCoderの問題をランダムに表示してくれるやつです。Diffの色の指定と既ACの除外などができます。
通学時間やちょっとしたスキマ時間に問題を頭の中で考えて、まとまった時間がある時に実装してみるというサイクルで精進しているので、スマホでサクッと問題が提示されるこのサイトには前からお世話になっています。ありがとうございます。
昔開催されていた謎のコンテストとかが表示されるのも、探しにくい問題を教えてくれるという点で好きです。
Atcoder Problemsで問題を探すとつい苦手そうな問題を避けてしまいがちなので、「次に一番上に表示される問題がABCの問題なら考える!」というふうにすることで満遍なく問題を解くことにも繋がっています。
PAST本 (上級~エキスパート編)
その名の通りPASTの本です。詳しくは見出しのリンク先にありますが、DP, フロー, セグ木, 遅延セグ木, 平面走査などのアルゴリズムが学べます。名前にPASTと書いていますが、ABCなどにもとても役立ちます。
自分はこの本を青色の時に読んで、青色あたりで必要そうな知識を固めることができました。特に、演算を自分で設計するタイプの遅延セグ木の理解に役立ちました。
ネットにはC++のコードもありますが、本に載っているコードはPythonで書かれているので、特に水青くらいのPython使いに特におすすめしたいです。
終わりに
今後やりたいこと、目標として
があります。頑張るぞ〜