はじめに
こんにちは!貴重な週末の夜を訳のわからないことに費やしている Shunta です。
ABC474 で 2 年 9 ヶ月も続いた 深緑コーダー から抜け出して、水色コーダーになりました!
深緑コーダーの頃に取り組んでいたことについて記事にしようと思います。
最後まで読んでいただけると幸いです。
| 出来事 | 日時 | コンテスト |
|---|---|---|
| 競プロを始める | 2019/08/24 | 第一回日本最強プログラマー学生選手権-予選- |
| 灰色 → 茶色 | 2022/09/10 | ABC268 |
| 茶色 → 緑色 | 2023/12/10 | ABC332 |
| 緑色 → 水色 | 2026/09/06 | ABC474 |
自己紹介
九州産業大学大学院の修士 2 年です。もう少しで修士課程も終わりますが、大学院ではグラフ理論を対象にした問題の計算複雑さを研究しています。学部生の頃は競プロがきっかけで精度保証のある近似アルゴリズムを設計する研究に取り組んでいました。その過程でとある問題の計算複雑さが気になり、現在はそれを明らかにしようとしているところです(いわゆる NP 困難の証明に取り組んでいます)。
他にも箇条書きで挙げると以下の通りです。
- メイン言語は Python です(たまに Haskell や Rust, Java も使います)
- 聴覚障害があります(そのため、見る解説はテキストのみで字幕のない動画は基本見ないです)
- 応用情報や数検準一級は持っていますが、そこまで数学は強くないです
- 旅行が好きなので生涯で 50 カ国は訪れてみたいです(次回は多分トルコとギリシャです)
- オンサイト参加は 3 回でどれも楽しかったです(日本最強プログラマー学生選手権~Advance~、高レート人材、TUNA Camp 2026 京都 Stage)
水色までにやったこと
毎日精進する(毎日 1 問解く)
レートを 800 から 1000 へ上げる過程では効果があったものの 1000 以降では効果を感じませんでした。苦手分野を中心に練習するのではなく、Diff の低い問題から埋めようとしたのが良くなかったのかもしれません(それはそう)。
分野を絞って解く
E869120 さんの 記事 の「全探索:全列挙」から「幅優先探索」までを解きました(問題に取り組みやすくするために問題名とリンクを Notion にペタっと貼ってどこまで進めたか管理していました)。これはレート 1000 から伸び悩んでいる頃に取り組みました。効果はあった気がします。
前回の ABC を復習する
解けなかった問題を解く
目指すのは水色なので A ~ E 問題が安定して解けることを目標にしており、コンテスト中に A ~ E が解けた場合は何もしません。もし、A ~ C が解けたなら D 問題を、A ~ D が解けたなら E 問題をコンテスト終了後に解いていました。
解けた問題を振り返る
これが案外と重要かもしれません。コンテストが終わって 2 ~ 3 日後に解けた問題を振り返ります。具体的には、どうしてそれで AC できると思ったのか正確に説明してみたり、より簡潔な別解がないか検討したりしました。後者に関しては他の言語(基本的に Haskell を使用)で解いてみようとすると自然と思い浮かんだりしました(普段使わない言語だと簡潔で楽な実装をしたくなるため)。
頭を使う
これまでコンテスト中は問題文を読みつつ紙に情報を整理していたのですが、わざわざ紙に書く必要のないことまで書いている感じがしました。そこで、紙に書きたくなったらそこをグッと堪えて頭で考えるようにしました。重要なのは紙に書かないことなのではなく、普段紙に書く人は敢えて書かない、普段紙に書かない人は敢えて書いてみるといった試行錯誤だと個人的には思います。
頭を使うことについてもう一つ紹介します。
アルゴリズム実技検定を受けてみようと思って 参考書 を買ったのですが、これが水色の精進に合うと感じました。というのも、コンテスト終了後に解説を読むと、すでに知っているアルゴリズムやデータ構造で解ける場合がほとんどで「あれ?私が勉強すべきなのは未履修アルゴリズムそのものではなく、知っているアルゴリズムの多様な使い方なのでは?」と思ったわけです。その参考書は最初に二分探索や動的計画法といった基本的なアルゴリズムが登場するのですが、意外にも使いこなすのに苦戦する問題がまとまっていて、頭を使うのに良いと思いましたし、水色を目指す上では問題文を言い換えてみるなど頭を使うのが大事だと実感しました。
コンテスト直前の謎のこだわり
ここ数ヶ月間、コンテストに集中するためにやっているコンテスト直前の準備がそれ以前に比べて変化したのでそれについても書こうと思います(試してみると思ったより効果があるかも...?)。
- 机の上には PC と紙、ペン、飲み物以外は一切置きません
- スマートフォンは隣の部屋に置きます(部屋が一つしかない方は電源を切ってカバンに入れるだけでも効果があると思います)
- コンテスト開始 10 分前になったら 上島珈琲店 ミルク珈琲 を飲みます
- コンテスト開始 1 時間前 ~ 30 分前の時間帯は机で仮眠を取ります
水色時点での精進状況
こんな感じです。
今後の目標
学生のうちに水色になるぞ!という目標を達成できて良かったです。今後は、社会人のうちに青色、死ぬまでに黄色を目指したいです!
終わりに
競プロを通じて色々な方に出会えたのがやはり自分の中で印象的です。最初は面白そうだからやってみようという軽い気持ちで始めたのに、まるでバタフライ効果のように私の人生全体に影響をもたらしました。やっぱり、好きなことをひたすらやるのっていいですね。






