AtCoderで入緑したのでそれまでにやったことなどを書きます。

1.レーティングが500~600のとき
自分はABC420で入茶してから9回そこにいました。
ABC423までは3~4完してレーティングが上がっていましたがその後はB問題までしか解けなくなりましたが早く解くことで何とか茶色パフォを保っていました。
このときやったことはDFSやBFSの基礎やSTL、貪欲法(今はなぜかできなくなったが)をやりました。
このときはまだjavascriptも少しやっていたのとrubyを少しやっていたのもあってそんなに競技プログラミングの勉強はしていませんでした。
B問題をたくさん解いてstreakを保っていました。
この時は軽くsetとmap,queue,二分探索、累積和をやっていました。
2.レーティングが600~700のとき
この時くらいからマクロやテンプレなどが増えていきました。
あとこの時からgvimを使い始めました。
ただのこの時はまだMOD=10^9+7やpos構造体やUnionFindがありましたがそんなに使っていませんでした。
この時もABを早く解いてレーティングを保つときもありました。
3分でAB解いたら650くらい行くときもあります。
この時にやったことは
- 競技プログラミングの鉄則 演習問題集の簡単なところ
- set,map,unoinfindなどのデータ構造
- 順列全探索、bit全探索
- ランレングス圧縮
- 座標圧縮
- ワーシャルフロイド法
- ラムダ式の書き方
をやりました。
3.レーティングが700~のとき
期間が一番短いのに書くことが多いです。
冬休み前のABC436でグラフ系がたくさん出て水色パフォを取って720くらいになりました。
そして冬休みに近くなったので毎日水色以上の問題を1問以上は解くという目標を立てました(いつ辞めればいいかわかりません)
昔の問題は色が高めです。(今だったら茶色なのに普通に水色とかついています)
その間にやったことは
- セグ木(まだコンテストで使っていないが)
- BIT(汎用性がセグ木より狭いけど強いやつ)
- LCA
- 逆元でnCrを早く求められるやつ
- 動的計画法(DP),メモ化再帰
- ダイクストラ法
- 01BFS
- 答えを二分探索するやつ
- ダブリング
- 半分全列挙
- 最小全域木(クラスカル法)
- (部活の競プロのスライドを作る)
あとはsigned main()と書くことで#define int long longと書いてもエラーにならないという便利な技や
#ifndef ONLINE_JUDGE
signed limit = 10;
#else
signed limit = 1;
#endif
と最初に書いてから
while (limit--)
と書くことで自分の環境では10回連続で試せて提出すると1回だけ実行してくれるという./aを何回も書かなくても良くなりました。
後は木の時はDFSで距離を求めています。
後はstackでDFSできるということも知りました。
冬休み前はDFSの代わりにBFSを使っておけばACできる問題しか解いていませんでしたが冬休み中はDFSの方がよかったりするときもありました。
ただデータ構造やグラフは強くなりましたがまだ数学系は弱めです。
あとはABC438のA問題で失敗してからコンテストが始まる20分前くらいから緊張してきます。
C問題から解いたほうがメンタルが安定するかもしれません(基本的に5分以上でないと解けないから)
コンテストの茶色までとけば大体緑パフォとれると思います
4.やってよかったこと
周辺系
- neovim
- wezterm
- MSYS2 MINGW64
アルゴリズム系 - DFS
- BFS
- ダイクストラ法
- ワーシャルフロイド法
- クラスカル法
- 順列全探索
- bit全探索
- 半分全列挙
- 累積和
- BIT
- 動的計画法




