4ヶ月くらい前から競技プログラミングのAtCoderを初め、毎週コンテストに参加している。26回目の参加で初めて茶色Coderになった。嬉しい。コードを提出してACになるのは楽しい。
レート400以上の茶色になるためには、以下のようなレベルが必要なようである。
- AtCoder Beginner Contest (ABC)のC問題まで1時間以内に正解
- 安定して10回以上
たまに50ポイントくらい急上昇しているのは、隔週で開かれるAtCoder Regular Contest (ARC)でA問題が解けた時で、お得感がある。そのためか、今回参加したARC183を最後に、ARC184以降は、レートが1200未満の参加者はレート更新対象外となる。ABCで失敗して意気消沈した翌日にARCで回復するということがもうできない。
始めた頃は、科学技術分野のプログラミングの経験はそれなりにあったが、競プロに必要なアルゴリズムとデータ構造に関する知識は完全に不足しており、時間をかけてB問題まで解くのがやっとだった。茶色になった現在までに獲得しているスキルを以下に示す。これだけあれば茶色にはなれる。
- アルゴリズム
- 尺取り法
- DP(まだ実戦で成功した例なし)
- DFS(まだ実戦で使えるかどうか怪しい)
- 二分探索
- 再帰関数
- 貪欲法
- ダイクストラ法(実戦経験なし)
- データ構造
- pair
- set
- multiset
- map
- modint
- セグメントツリー(実戦で使えるか怪しい)
- c++実装テクニック
- repマクロ
- vector
- 初期化
- ソート
- 反転
- 追加、削除
- 末尾の取得
- 2次元、多次元vector
- iterator
- ソート
- for文の回し方
- 値の取得
- next_permutation()
c++実装テクニックは、忘れてもコンテスト中に調べてOKだが、タイムロスになるので、スラスラかけるようにしておかないと、C問題まで1時間はなかなか厳しい。
次は入緑を目指す。