モグリンの競プロ備忘録

主に競プロの記事を書きます

APG4bからAtCoderを始めた人向けの導線

※この記事は弊学で最近競技プログラミングを始める人が急に増えているのを観測したので急ごしらえでこさえたものです。荒い上に間違っている部分も多いと思うのですがご了承ください。暇なときに手直しはする、多分。

0. はじめに

 APG4bはAtCoderが提供しているC++の入門教材ですが、ここから入った人向けの導線があんまり整備されてない気がしたので自分なりに有用そうなサイトとか記事とかもろもろをまとめておこうと思いました。もちろん完全主観なので絶対正しいわけではありませんが、私が競プロを始めたときにはAtCoderという環境に慣れるためにかなりの試行錯誤を要したので、その苦労の一部でも後から始めた人は軽くなればいいなと考えています。

1. APG4b

 APG4bから始めた人向けとか謳ってるのでまず最初に軽くAPG4bについて触れます。ぶっちゃけ難しいです。個人的な感触としては

  • 1章: 必要最低限、コンテストに挑むならまずはここまではやる、精進もここまでは終わらせてからにする。
  • 2章: いきなり難易度爆上がりする。ここまで完璧にできるならぶっちゃけ緑まではかなり早い段階でいけるはず、精進もこのあたりから始めるのが良さげ。
  • 3章: 難易度が高いというよりC++の"機能"の部分が多い気がする、コンテストで戦う上では必須の知識も多いが大概D問題以降。
  • 4章: わ た し が ま だ 理 解 し て い な い、やんなくても青にはなれます。

特に2.042.053.04は他のに比べても難易度が2段階くらい高いです、詰まるようならあまり無理をせず一度飛ばすことをおすすめします。緑くらいになってから学びなおしても遅くはないはず。また、3章は基本的に覚えることが多く、全部を一辺に暗記しようとせず、最初のうちはどんな機能があるのかだけ覚えておいて、実際に使いそうな問題になったら該当の節に戻ってきてそれを見ながら問題を解くとかでいいと思います。その内基本的なのは自然と覚えてすらすら出てくるようになります。後サラッと書いちゃったけど緑とか色が出てきたらAtCoderのマイプロフィールで確認できるレートの色のことです灰→茶→緑→水→青→黄→橙→赤の順でレートが上がってきます。まずは半分、水を目指そう!とか勢いで見積もるとちょっとやばいことになるのでご注意を...(体験談)。

APG4bについてはこんなもんだろ、知らんけど

ある程度APG4bを終えた後は?

 この後はぶっちゃけ人によって精進の仕方もコンテストに対する姿勢も全然異なるので本当に基本的なところだけまとめていきます。

AtCoder Beginners Selectionをやってみる

 言わずと知れた、AtCoderの登竜門、AtCoder Beginners Selection
atcoder.jp
問題ごとに競プロで必要なアルゴリズム(というよりもはや基本姿勢)である全探索や貪欲(Greedy)を学べる良問集、簡単な問題が多いのは確かだが、これをしっかりと意識して解いておくと後が楽、あの時の僕にだれか教えてあげて。
解説も貼っておきます。
qiita.com
この記事を書かれているけんちょん(ブログではdrken)さんは、AtCoderから競プロを始める人は大変お世話になるので覚えておきましょう。ぶっちゃけ緑になるくらいまではこの方の記事におんぶにだっこになるはずです、適当なアルゴリズムの後ろにこの方の名前つけて調べると大体何らかの記事出てくる、多分。

AtCoder Problemsに登録する

 AtCoderの過去問やるなら何といってもここ!知っていると知らないとでは精進のストレスが大きく違うというかこれ知らないで精進してる人は多分いない。今日もみんなkenkooooさんに感謝しよう。

Boot camp for Beginnersをやる

 AtCoder ProblemsのTrainingの欄から進むことが出来る。私はあまりやってないので強くお勧めできないのですが、やってる人からの評判はいい。Easy/Medium/Hardで各々100問ずつの問題が用意されており、自分に合ったレベルを選んで進められる。

ABCの○○埋めをやる

 ○○にはAとかBとか問題番号が入ります。Tableで縦一直線に並んでるので精進がしやすいんですね、効果的かと言われると、どうだろう...。でもやってる人は結構見かけます。

色埋めをやる

 各問題には難易度に合わせて色が付けられてるので、特定の色の問題を全部解くつもりで片っ端からやることです。私はこれをやってました、実は量のわりに効果がものすごく高いわけではなさそうです。けど一つの手段としては有効かなーと思ってます。注意点としては試験管問題はやらなくていいと思います、実装が重いわりに学べるところのある問題が少ない。

AtCoder Problemsの基本的な使い方ってこんなもんだろうか、他にもいろんな機能があるので色々いじってみましょう、かなり便利です。あと、AtCoder ProblemsだけにとどまらずAtCoderを楽しむためのサイトはたくさんあります。次の記事
noimin.hatenablog.com
によくまとまっていたので一回目を通しておくのをおすすめします。

Twitterを始める

 競プロをやるにあたり欠かせないツールになりつつあります。フォローした方がいい人がまとめてあるものとして、AtCoderの社長さんのブログ
chokudai.hatenablog.com
を引用しておきますが、個人的に初心者が絶対フォローしておくべき人として 競技プログラミングをするフレンズ さんを上げておきます、なぜかと言いますと最初のうちはAtCoderのコンテストの解説は結構読みにくいです。解説放送もしているのでそちらを見ることも大事なのですが、もっと手軽な方法としてコンテスト後に大抵フレンズさんが問題に関する簡単な解説ツイートをしてくれることが多いので、それを読むだけで大分ためになります。
 他に自分と近い色の人をフォローして刺激にしたり、色の上の人をフォローして色々学び取ったり、使い方は人次第ですがいずれにしろかなり重要です。わからないこともTwitterに投げると質問に答えてもらえたりする、嬉しい。

Google拡張機能を入れる

 AtCoderには有志による様々な拡張機能があるので使えると便利です。こちらの記事
dailylife.dev
にある程度まとまってました、どれも便利です。

他人の色変記事を読む

 先人の歩んだ道が参考になるのは当たり前、AtCoder 入茶/入緑/入水記事あたりで調べるとたくさん出てきます。学んだ方がいいアルゴリズムの一覧とか載せてくれている人もいる。私も入水記事書いてるから読んで(宣伝)(本音を言うと本来ここに書いた方がいいことでダブってる内容があるけどもっかい書くのだるいからこっち読んで適宜補って)
mogurin1000000007.hatenablog.com




よし、こんなところで...、ぶっちゃけこの記事かなり色々欠けてる気がするんですが今ちょっと他のやりたいことがあって頭回らないんで後日色々手直しするかもしれない、なんか他に書くべき内容あったらじゃんじゃん指摘してください、ここまで読んでいただきありがとうございました。