ということで、緑になるためには何々した方が良いみたいな記事はたくさんあるので、この記事は自分がこれまでやったこととこれからやっていきたいことのメモ書きみたいな感じで書いて行こうと思います。ここはこうした方が良いみたいなことがあればコメントお願い致します。
#今までやったこと
###灰のとき
A,B,C問題をそれぞれ20問ずつくらいやった。D,E問題はほとんど触れず。C++の方が速度が速く競プロ向きだということで最初はC++を使ってた。普段の研究やインターンなどではPythonの方が使う機会が多そうなことと、ライブラリが充実しており、記述も簡単であり、Pythonerも少なくとも青までは速度が出なくて困ったことはないという記事があったため、途中からPythonに移行。
初めは茶diff前後の問題を中心にやっていた。最初はC++やPythonの文法、Atcoderの方式に慣れるという意味でもA,B問題を解くことに意味があったと思うが、徐々に簡単に思えてきてやる意味あるのかな?と思ったので、それからはCを中心にやるようになった。
使った教材
・初心者用の記事にあった問題(何やったかよく覚えてない)
・ABCの過去問数年分
・atcoder版蟻本
https://qiita.com/drken/items/e77685614f3c6bf86f44
#####しくじり
・ツイッターやってたけど実際に一緒に競プロのチャとかをやることはせず、ほとんど完全な1人プレイだった。他の競プロerと繋がった方が楽しい。
・途中までA,B問題埋めてて、解いてる時は出来てる感があって楽しいけど、それやってもC,Dの正答率は大して上がらないのでA,B埋める時間あったらC,D問題やった方が良かった。
・問題のdiffではなくA,B,Cというアルファベットで難しさを判断していた。たまにC問題だけど青diffみたいな問題もあって、そのような問題も一応取り組んでいたけどしっかり理解できてなかった。アルファベットではなくdiffで判断するべき。
・解説みてもイマイチ理解できない時頭の中で何時間も考えてたけど、わからなくてもとりあえずコード書いて、コードの途中の変数を出力してみたりすると理解できたりする。
###茶のとき
茶,緑,水diffの問題中心にやった。
使った教材
・競プロ典型90問
・螺旋本
・Atcoder版蟻本
#####しくじり
・途中院試があって精進しなくなったとき、精進しないでコンテストやってもレート上がらなかった。レートを上げるという意味では精進していない時はコンテストやらない方が無難。もちろんコンテストによって定期的にコーディングすることに強制力を持たせる分には良いと思う。ただ、週一とかの頻度でコンテスト出るだけで普段精進しないとそこまで実力は伸びないと感じる。
・DPどっから勉強すれば良いのかわからずとりあえず場当たり的に蟻本に乗ってる問題解いてたけど、アルゴ式だったら段階的にDPのc勉強できるのでアルゴ式とか使って典型からひとつずつ段階的にちゃんと抑えたい。
・atcoderの拡張機能入れてなかったが、入れといた方が多方面に便利なので早めに入れた方が良かった。
##これまでやったアルゴリズム
- 単純な全探索
- ビット全探索
- 順列全探索(next_permutation)
- 最大公約数,最小公倍数
- 高速素数判定
- エラトステネスの篩
- 素因数分解
- 約数列挙
- 半分全列挙
- bit全探索
- 二分探索(単純)
- BFS
- DFS
- ダイクストラ法
- ワーシャルフロイド法
- クラスカル法・プリム法
- DP(基本)
- LIS
- Union-Find木
- ModInt(剰余をとる必要がある四則演算やべき乗、nCr、階乗)
- XORの問題
##今後やりたいアルゴリズム
- **DP(応用)**←最重要
- 累積和
- いもす法
- 尺取り法
- 高速な冪乗計算
- 逆元の利用
- 座圧
- BIT
#終わりに
一応入緑したけど今のレートだと一回でも茶パフォ出すと茶色に戻るので、なんとか緑キープできるように頑張っていきたい。話を聞くところによると、緑から水になるまでが結構大変そうなので頑張る。
やりたいと思ってること
・競プロerの繋がりをもっと広げたい
・1日1AC。精進ツリー作って、streakを稼ぐのをモチベにしつつ、茶色以下diffの問題やっても実力伸びないと思うから、緑~水diffに絞ってやっていきたい。
・とはいえ、今後は研究やKaggleに重きを置こうと思っているからやる頻度は減っていくかも
今後使う教材
・Atcoder版蟻本
・アルゴ式
・競プロ典型90問
・精選100問