本格的にやり始めてから三ヶ月くらい茶色になりました!
いえーーーい!
今回は茶色になるまでにやったことを書いていこうと思います
最初の実力
見ての通り半年位前にちょっとだけ参加したり、C言語を本で学んでたりしてABの簡単な問題は解ける実力がありました
やったこと
やったことを自分のツイートを遡りながら書いていきます
C++の基本を勉強
自分はC言語を使っていましたがC++が競プロだと良いと聞いたのでそっちに切り替えました。今でもコンテスト中に見直したりしてます。
これを使って学びました。第3章までを理解すればC問題を結構解けると思います。
https://atcoder.jp/contests/APG4b
特に再帰関数は難しいと思います
ここの段階では1章だけ理解しました
AB問題を解く
AB問題を大体20問づつ解いて配列やforの使い方に慣れました
このサイトでABCの過去問にいけます
左上の所に自分のIDを入れると解いたものが緑色になります
左の丸の色が難易度になっています
https://kenkoooo.com/atcoder/#/table
今でも分からないんだけど添字(A[i]のiのところ)ってなんで0から始まるの?
C問題を解く
C問題片っ端にやっていきました。累計で80問くらい?
ここが二ヶ月くらいありましたね
10分くらい考えて分からなかったら解説読むのがいいと思います
この頃はAtCoder problems(上のURLのやつ)を知らなかったので自分の実力に合わない問題をやって一日中苦しむことがありました
最初は灰色のやつをやりましょう!
解説を見て自分でコードを組み立てても全然ACが取れない時は実力がついた後に解くように問題URLを怨念.txtに入れて次の問題に行きました
たくさんの怨念がtxtファイルに詰まってます
競プロ典型90問を星3まで解く
ここに典型的な問題がたくさんあり、二分探索やDFSなどの問題や偶奇を意識すること、オーバーフローなどを理解しました
難しいので星3までやるといいと思います。全部解いたときは爽快感がありました!
緑色の難易度のCD問題を解く ❌
解説を見る前提でコードを組み立てて解くということをしてました
これを一応やりましたが意味はなかったと思います
灰色の実力しかないのに2色上のものをやって解説見てもそこまで理解できてなかったと思います
茶色の問題も一緒に解いていてそっちは意味があったと思います
人のコードを見る
人のコードを見るとincludeの下に色々あったり、自分の解き方と違う解き方をしてたり、いろんな発見があるので見てみるといいです。
kotatsugameさんとか良いと思います。
コンテスト終わった直後とかに皆自分の解法を要約してツイートしてるのでそれを見るのもいいですね
ABC毎週出る
書き忘れてましたが毎週でました
終わった後に自分が解けなかったやつを解説見て解くこともします
疲れてたりイラついてたりしてそのまま寝ることもありました
なんでこんなに遅い時間なんでしょうね?
(最近)解法メモをする
二分探索とかDFSを作る時の注意点、解法を自分なりに書いた紙を作っています
過去問を解いてる時に気づいたことを書こうと思ってます
まだやり始めたばっかりなんで効果あるか分からないですね
終わり
茶色になるまでにやったことを書いていきました!
誰かの役に立ったら幸いです
AHCもやっていきたいですね!
おまけ 知識一覧
自分の持ってる知識を書いていきます。
もし知らなかったら調べてみてください
思いついたやつしか書けてないし、この知識はどう分類すればいいか分からないものもあるからあんま意味ないかも()
簡単なもの順に書きます
使いこなせるもの
for,while,if
全探索
二次元配列
型変換
stdの関数 sortやminなど
文字列操作の関数
計算量
貪欲法
二分探索
累積和
構造体 mapやsetなど
普通の関数
順列
imos法
sortの後ろに関数つけるやつ
グラフ
深さ優先探索
再帰関数
bit操作
lower_board
幅優先探索
座標圧縮
解説見ないとできないもの
動的計画法
Union-Find
三分探索
トポロジカルソート
グラフのサイクル検出
名前だけは知ってるやつ
ワーシャルフロイド法
セグメント木