AtCoder 黄色になった
2022/01/21*1の ABC286 でめでたく黄色レートを達成したので所謂色変記事を書くことにしました。
自己紹介
某国立大学の大学院生をやっています。学部〜大学院で(競プロと近い領域の)数学について専攻しています。(以下、その分のアドバンテージがあったことを承知の上でお読みください。)
精進記録
黄色になった時点での精進記録です。
おおよそ平均的な黄色コーダーと同じ~やや少なめくらいの精進量でしょうか。
青diffは8割方、黄diffは5割方自力ACで、橙diffは全て解説ACです。
これ以外にも CF や AOJ などで解いている問題もあるのですが、数は少ない(20~30題ほど)ので省略します。
やってよかったこと
典型習得
"赤にいかないうちは、典型も解けていないという証拠なのでどんな問題がでても文句を言わずに解きましょう"という格言*2にあるように1にも2にもまず典型の習得です。
自分が典型を身につける上で重宝したコンテンツとしては
-
E869120さんの 競プロ典型 90 問 - AtCoder
- DP典型をまとめた Educational DP Contest - AtCoder
- 蟻本
- PAST
などが挙げられます。前者二つについては着手している人は多いと思いますが、個人的には後者二つも青〜黄帯の典型がかなり凝縮されているコンテンツであると感じています。
蟻本については網羅度は典型90より下がりますが、その分各々の分野(特にフロー・ゲーム系の問題など)については典型90より深掘りされており、体系的な知識習得に役立ちました。
(余談ですが、最近でも ABC 293 E - Geometric Progression や ABC 294 G - Distance Queries on a Tree など蟻本で紹介されているような問題がほぼそのままの形式で出題されている例もあります。)
PASTについてもABCと同様の典型アルゴリズムで解ける素直な問題が多く出題されており、典型の習得・演習にちょうど良い問題集でした。
解いた問題の思考過程を言語化する
解説 AC かどうかに問わず、解いた問題についてどのようなプロセス・考え方を経て解いたかを(軽くですが)言語化することを心がけていました。
例えば dp を使う問題解いたときなどは
- 問題のどの性質・制約・構造が重要か
- 上の重要ポイントを踏まえてどのような典型・解法に帰着できるか
- 上の典型・解法に帰着させたあと、どのようなdpの遷移を組めば TL に間に合うか
などを Twitter などの媒体で文章にまとめていました。
効果があったかは定かではないですが、このような取り組みを続けていったことで、コンテスト中に問題の解法が自然に浮かぶことが多くなり、的外れな解法を色々検討すること(所謂"解法ガチャ")が減ったように感じます。
自力で解いた問題も解説を熟読する
題にある通り解説を熟読するようにしていました。
自力で解けた問題であっても、他の人の解説・別解を読むことで自分の持っていない知識・典型が新たに習得できる、ということが多々ありました。(例えば F - Range Set Query の kampurin さんによるユーザ解説で自分は初めて Mo's algorithm を知りました)
最近は AtCoder のユーザ解説が充実しているので専らそっちで済ませてしまっていますが、昔の問題であれば "ABC100 D" のようにコンテスト名+問題番号で google 検索することで blog にまとめた解説が見つかることがあります。
数学に慣れ親しむ
(やってよかったこと、というよりは体験記寄りです)
初めに貼ったレートグラフを見ると2020年4月〜2022年4月に二年間の空白があります。この期間は学科の講義などが忙しくなったタイミングであり、競プロをやる時間とモチベがなくなり半引退状態になっていました。
その代わりに学科の講義で(アカデミックな範囲の)数学を重点的に学んでおり、数学的な知識や数学的議論を行うための「下地」的なものを培っていました。
数学の勉強は競プロのためにやっていたわけではなかったですが、およそ2年間数学に触れ続けたことで、半引退状態になった前と再開後を比べて
- 問題の解法の正当性の証明
- 解法の定式化
- 解説の理解
- 得た知識の汎化(次同様の解法の問題が出たときに解けるようにする)能力
などの能力が格段に上がったように感じました。
以上のような経験は誰にでもできるわけではないですが、
- 解説の行間を埋める
- 蟻本などアドバンスドな競プロ本を理解するまで読み込む
- その他競プロに関連する分野の数学書籍を読みこむ
などでも同様に競プロに求められる数理的素養を培えるようになるのではと思います。
最後に
ARC の ad-hoc が解けるようになりません たすけて