はじめに
jack アドベントカレンダー 2024 の24日目の記事です.
クリスマスイブということで,競プロの話です.
jackはアプリ開発団体ですが,僕はアプリ開発ではなく,競プロばかりしています.
その甲斐あって,先日の ABC380 にて,念願の黄色コーダーに到達しました.
今回は入黄記事として,今までの精進を振り返ろうと思います.
自己紹介
- AtCoder: https://atcoder.jp/users/hirakuuuu
- 情報系のB4
- プログラミングは大学に入ってから始めました
- 競プロ歴はB1の夏に始めたので,3年半くらいです
- 言語はずっと C++ です(ただ,競プロ以外では使ってないです)
- 研究室ではグラフアルゴリズムに関連したことをやっています
精進の記録
全部で 2200 問くらい解きました.何かの記事で 3000 問解けば黄色になれるみたいなことが書いてあった気がするので,それより少なく済んでよかったです.
精進は基本的に atcoder problems のおすすめ問題の difficult を1日1問のペースで埋めてました.だいたい今の色の一色上の問題が出ます .緑~黄色の問題はだいたい75%くらい埋めました.そろえたわけではないですが,同じくらいになってます.
水色になるまで
はじめてから8カ月くらい(2021/08~2022/04)で水色になりました.
水色になるまでにやったものです.
- APG4B
- C++の勉強はこれでやりました
- 精選100問
- 最初にやる問題集はこれが一番おすすめです
- 基本的なアルゴリズムが例題とともに網羅されています
- 典型90
- 最初から順番にやろうとして,1問目で挫折しました
- 難易度順に取り組むのをおすすめします
- typical90_extension という拡張機能で難易度順の並び替えができます
- 蟻本
- これも難しすぎて挫折しました
- ABCの過去問をひたすら埋める
- 1日1問解いて,サークルの slack に投稿してました
- 数人が一緒にやってくれてたのですが,気づいたら僕だけになってました
最初の方は色んなものに手を付けて挫折するが多かったです.自分に合ったものを見つけるためには必要な過程だとは思います.
また,このときはライブラリとかは特に整備してませんでした.比較的簡単めなアルゴリズムやデータ構造(ダイクストラ,Union-Find など)は毎回空で書いてました.(今はライブラリからコピペしてます,空で書けるかは怪しいです…)
青になるまで
水色になってから1年ちょい(2022/04 ~ 2023/05)で青になりました.
青になるまでにやったものです.
- 典型90
- 星5以下(水色相当)の問題を順番に埋めて,途中で挫折するを繰り返していました
- EDPC
- P問題まで埋めてました
- これで割とDPが得意になった気がしてます
- 鉄則本
- 話題になってたので購入
- AtCoderに問題があるのがとてもうれしい
- 全体的に易しめなので,水色になるまでのときにやりたかった一冊です
- 青 diff 埋め
- 1日1問のペースで解いてました
- ライブラリ整備
- 問題を解いて出会ったものをまとめるという感じでやってました
- 自分の場合アルゴリズムを単体で勉強しても、具体的な使い方が分からないと本番で使えなかったので,出会ったときに学ぶようにしていました
- ac-library を使い始めたのもこの時期です(抽象化のすばらしさに気づく)
水色までと比べると,水色から青はかなり停滞しました.停滞したときは,パフォーマンスの下限を上げるのが大事だと思います.特に,自分の今の色以下の問題は確実に通せるとパフォが安定するので,このときは青に加え緑・水も埋めるようにしてました.
ただ,上がるタイミングはよく分からないです.数カ月精進をさぼってたのに,取ったことない黄パフォを2連続で取って入青したので,毎日頑張ってたのは何だったんだという気持ちになりました.
また,2023年はICPCで横浜まで行けたのがうれしかったです(参加記).今年は予選落ちしてしまいましたが,来年はラストなので頑張りたいです.
黄色になるまで
青になってから1年半(2023/05 ~ 2024/11)で黄色になりました.
- 典型90
- 星6,7(青黄相当)を埋めました
- 星7の内容は最近のABCの青・黄問題によく現れる印象です
- EDPC
- V問題まで埋めました
- 気が向いたら全部埋めます…
- 黄diff埋め
- 最初の方はほとんど解けず,解説ACばかりしていました
- 解説放送とか上位者のコードを参考にするようにしてから,徐々に解けるようになってきた気がします
- ABCの青・水diff埋め
- 停滞した時期にやってました
- ABCのパフォが安定したのはこれが一番大きいと思います
青になるまでとやることはそこまで変えていないです.(ほぼ1色上がっただけです)
黄 diff 埋めは解説放送を見るようにしたのがかなり良かったです.理解の助けになりますし,snukeさんの実装がとても参考になります.解説放送のコードを写経してそのままライブラリにしたものもあります(Low-Link とか).
またARCにあまり出てなかったせいで,絶賛青黄反復中です.今後は頑張って出ます.
おわりに
色々書きましたが,自分の色以下の問題を通せるようにするのと、継続することが大事だと思います.
NUPCの宣伝
3/29(土)に名古屋大学でオンサイトのコンテストを開催する予定です!
詳細はcompassのページをご覧ください!