#はじめに
2020年5月20日にAtcoderのNOMURAプログラミングコンテスト2020に出て、水色になりました!いえい!旧ABCならもう出られないぞ!!
なんでこんなタイトルからしてゴミな記事書こうとしたかというと、自己顕示欲満たすためと、水色が遠いと思ってる人たちにここはやればこれるところだぞっていうことを伝えたかったからです。
#プロフィール
- 所属
合コンしたくない大学ランキング第二位の通信大学三年生
- 趣味
バドミントン、ダーツ、スノボ、邦ロック聴くこと、料理 - 得意料理
からあげ - 好きなバンド
UNISON SQUARE GARDEN, 赤い公園, tricot - 得意科目
家庭科、図工、体育 - プログラミング始めた時期
大学一年生 - 好きな言葉
下ネタ全般
…いやね、ほんとはqiitaに投稿するんだし、機械学習やってます!(キラッ)みたいなこと書きたいんですけどほんとに何もないんですよ。大丈夫か??? スペックだけならそこらへんのfラン私文陽キャと戦える気がします。
#時系列ごとにみていく
さて、時系列ごとに自分のデータを見ていきましょうか、ちょっと恥ずかしいですね。ここから真面目です。
##2018年4月ごろ~
###Atcoderと出会う
電気通信大にはMMAというコンピュータ系なんでもやってるサークルがあって、実はそこにちょっとだけ入ってました。(今は幽霊部員です。)(もし部員いたらメーリス消してもらえたらなんかおごります)
そこでたぶんあちらは覚えてないと思うんですけど先輩(確か編入の先輩)が競プロ布教してくれて、そこで知りました。ここがなければたぶん競プロに出会ってないです。
でもこの当時はプログラミングのプの字も知らなかったのでまったくコンテスト出てませんでした。
##2018年12月~2019年3月
灰色コーダーの時期です。大学の授業しかプログラミング勉強してません。
##2019年4月~11月
###茶色コーダーの時期
ここで変わったのは大学で競プロの授業を取ったことです(今期はない)
合コンしたくない大学ランキング二位の大学には競プロの授業が当時あって、通年で競プロに触って、ICPC出よう!って感じでした。強制的に競プロに触れる機会があったってのと、つよつよの先輩が何人かいたため、こんな世界があるんだー()って知れました。
あと学生コンの懇親会にだけただ飯食いにいきました。つよつよの人ばっかでモチベ上がりました。あと競プロerの男女比に絶望しました(は?)
##2019年12月~2020年4月
###緑コーダーの時期
ここからちょっと本格的に競プロを始めました。
蟻本片手に簡単な問題埋めてた気がします。
あとライバル?もこの時期に緑になってて、なんだかんだ飲み会がないときは毎回コンテストに出て張り合ってた気がします。
##2020年4月~今
###コロナ自粛、引きこもり、そして…
春休みの期間は合宿免許にいってたりで忙しかったんですけど、コロナで休みが伸び、暇すぎて精進するようになりました。
ちょうど連続し始めたところが合宿免許終わって東京に帰ってきたところです。
自分、死ぬほど勉強嫌いですけど人間暇だと何するかわかりませんね。毎日問題解いてました。あと料理めっちゃしてました。
codeforcesにもちゃんと出るようになりました。水色になる前にこっちで青になってました。
そして野村コンで崖をうまく使って水色に…
#習得したアルゴリズム
色別にその色で習得してたアルゴリズムを見ていきたいと思います。ぜひ参考にしてください。
###灰色
- 全探索
###茶色
- BFS, DFS
- GCD, LCM
- グラフの構築
###緑色
- ダイクストラ(ライブラリ)
- プリム、クラスカル(ライブラリ)
- 繰り返しニ乗法
- 約数列挙(ライブラリ)
- 基本的なDP
- しゃくとり法
- 累積和、imos法
- Union-find
- 逆元計算(ライブラリ)
こう見てみるとやっぱり緑でアルゴリズムの量が段違いに増えてますね。
#勉強法
###緑まで
まず灰色と茶色で停滞している人はそもそも必要なアルゴリズムを知っていない可能性が高いと思います。なので蟻本を見ることをおススメします。
辞書みたいに基本的なアルゴリズムが載ってるので、理解はともかくとして知ることができます。
知ればわかんないときに調べられます、あとは復習したらOKです。
これである程度習得したら抜けられますきっと。
###緑以降
自分がやってきた精進について書きます。
私はABCのC埋め、水パフォ毎日、codeforcesの問題気が向いたら解く、をしました。こどふぉはどうでもいいので置いてきます。前2つに対して話します。
ABCのC問題には難しいやつと簡単なのが混ざってますね。簡単な問題はアウトプットです。なるはやで処理しましょう。
難しい問題でインプットします。解説ACでもいいです。旧ABCの問題だとたまに無理だろこれ!ってなりますけど、こういう機会に無理やり理解してアルゴリズムの習得を図ります。
水パフォは旧ABCのCのむず問と同じ役割です。インプット(できればアウトプット)の機会です。
よく精進の話になると自分の実力で解けなきゃいけない問題解く派(長いので下埋めとします)と自分が解けなさそうな難しい問題解く派(上埋め)の2つに分かれます。私は後者です。理由はそもそもスタートラインに立ててないからです。
青以降の人はそもそも基本装備として特定の問題に対する必要なアルゴリズムを習得していると思ってます。この人たちが下埋めするのは考え方を固めるためってことが大きいと思います。
私たち雑魚が下埋めして得られるのはタイピングスピードだけだと思ってます。灰~緑の人はインプットの機会を作らないとそこから進めないと私は考えてます。
上埋めでアルゴリズム習得していきましょう。まず問題解くスタートラインに立ちましょう。以上調子に乗ったザコーダーからでした。
#最後に
実は水色あたりで競プロ飽きるてやめるかなって思ってたんですけど、まだまだ飽きる気配ないですね。趣味は競プロってしましょうか。また合コンしたくない大学ランキング上げそうなのでやめておきます。