初めに
皆さんはじめまして、あじゃじゃと申します。
ABC361で緑コーダーになることができたので今後の精進のメモもかねて
緑になるまでにやったことを書こうと思います。
自己紹介
- 大阪大学の基礎工学部のB2
- Atcoderを本格的に始めたのは今年の三月
- Atcoderを始めたころはPythonの基本的な文法が分かる程度
- AtcoderのIDはjuten
緑までにやったことその1-知識をつける
ABCのA,B問題はいわゆる"やるだけ"なのですぐにできるようになったのもあってか、「なんや、競プロちょろいやんけ」なんて思っていたのですが、C問題に取り組みだすとすぐに競プロの洗礼を浴びました。これはまずいと思い、本格的に勉強を始めました。知識を身に着けるため、つかった参考書は次の二つです。
1.アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門(愛称:鹿本)
読んだ感想
Python,C++を始めたばかりのユーザーが対象者です。
一通りよめば、400~600パフォーマンスくらいは安定するかなと思います。
サンプルコードも読みやすいので、入門書として非常におすすめです。
が、正直次に挙げる本で事足りるので理解力に自信があれば飛ばしちゃっても大丈夫です。
ここから買えます
2.競技プログラミングの鉄則(愛称:鉄則本)
読んだ感想
C++ユーザーが一番読みやすいと思います。ただ、どの言語のユーザーでもやることをおすすめします。かなり広い範囲のアルゴリズムについてカテゴリーごとに整理されており例題及び演習問題を解くことである程度の応用力も身に着けることができます。
正直今回の入緑はほぼほぼ、これのおかげです。
ここから買えます
緑までにやったことその2-早解き力をつける
その1で紹介した本を読みながら並行して行っていたのが「実装力の強化」です。個人的にこの能力は二つの領域に分けることができると思っており、それは「解法が生えてから実装を終えるまでが速さ」と「重実装をバグらせない能力」です。後者に関しては緑になるまでに困ったことはなかったので「早解き力」の強化にとりかかりました。主に取り組んだことは次の二つです。
ABCコンテストの問題A,Bの過去問
実装速度を上げるには実装する回数をこなせばいいだろ!!!という単純な考えのもと、解法が一瞬で思いつくA,Bをたくさん解くことでアウトプットすることになれていきました。
Atcoder Daily Trainingへの参加
Atcoder Daily Trainingとは毎週火、水、木曜日に開催されているABCコンテストのバーチャルコンテストです。Easy,Medium,Hard,Allにカテゴリーが分かれており、好きなカテゴリーに参加することができます。コンテストの時間も1時間と短いため参加しやすいように思います。
私は、簡単な問題の早解きに慣れることを目的にEasy、コンテストの空気感になれる目的でMediumに各週一回は最低でも参加していました。
今後水色になるためやること
1.EDPCを埋める
2.典型90問を埋める
3.そろそろ過去問を埋める
終わりに
つらつらとABCの練習について書いたけどARCでレートを400稼いでいるので全人類はマスターオブ整数をやってARCに特攻すべきだと思います。