水色だー!!!
先日のABC460で晴れて入水できたので、入緑から入水までにやったことを書き留めておこうと思います。(入緑のときは自分語りが過ぎましたね。すみません...)
Who am I?
とはいっても一応自己紹介くらいはしておいた方がいいと思うのでしておきます。
自分は高校生で、部活はいわゆるパソコン部と呼ばれるであろうものに所属しております。数学が好きで、 (授業中とかの) 暇な時間に作問したり、見つけた問題を解いたりしています。普段はPythonでコーディングしているのですが、後述するプログラミング教室に通い始めるのと同時にC++も勉強し始めました。
入緑からやったこと
- 精進木を生やす
- E問題に手を出す
- Atcoderの競技プログラミング教室に通い始める
Xを見ていたら精進木というものを固定ツイートに載せている競プロerの方がたくさんいたので自分も流行りに乗ってみることにしました。
(知らない人のために精進木とは何か簡単に説明すると、解いた問題を固定ツイートのリプライに載せて、学んだこととかを一言一緒に書いておくようなものです。自分がどれだけ精進したかわかりやすいので、モチベの維持に大きな役割を果たしてくれます。)
では主に精進で何をやったのかというと、D~Eの緑difや水difです。緑中期くらいまでは緑dif以下はなるべく自力AC、水difは考察してわからなかったらすぐに解説を読んで理解する、という方法で進めていました。解説ACはよくないと言う方もいますが、自分は新しいテクニックや知っているテクニックの典型的な応用など知らないと解けない問題も多くある以上はある程度必要なのかなと思います。
そして、今年(2026年)の4月からAtcoderの競技プログラミング教室に通い始めました。2月の入塾試験で算数の難しい問題を解ければ入れるので、数学好きで来年競プロで強くなりたい方はぜひ受けてみてください。
学んだアルゴリズムやデータ構造
入緑から新しく学んだアルゴリズムやデータ構造、テクニックなどを思いつく限り書いていこうと思います。
- SortedContainers(python)
- Segment Tree (Fenwick Tree)
- 頂点倍化(DP, bfs/dfs)
- ダブリング
- ゲームDP
- ダイクストラ法、ワーシャルフロイド法
- 01-bfs
- トポロジカルソート
- Union-Find
- BitDP
- 最小全域木
特にSortedContainersには助けられました。簡単に言うと常に要素がソートされてるリストとか辞書が使えます。これを使うと例えば ABC-458 Dなどを瞬殺できます。便利ですね。
(全部使いこなせるというわけではなく、学んだことがあるものを書きだしたので、実際にコンテストで使いこなせるのは上半分くらいだと思います。)
ABCでの戦略
自分はコンテスト中に「解けるものはできるだけ早く解く」いわゆる早解きをしていました。早解きができると例えばDまで爆速で解けたらEをぎりぎり提出した人と近いperfが出るのでおすすめです。コツは読みやすいコードを書くことで、インデントを意識したり、長い計算式は適宜変数を使って短くするといったことをすると見やすくなります。これをすると、デバッグが非常にやりやすくなるのでお勧めです。
競プロ教室について
あまりこの話をしている人が見られなかったので少し話が脱線しますが競プロ教室のことも書いておこうと思います。
主に週に一回教室へ通って、そこでその日のテーマ(DP、累積和など)に沿った演習課題が出されます。演習問題を解いて、教室の前で講師の方が解説して、という流れで進んでいきます。たまに生徒を当てて解き方を聞いたりしてアドバイスすることもあります。当日中に終わらなかった演習課題は宿題になって来週までに解いてきてね、という感じです。また、週に一回その週で学んだことをチェックする確認テストがあります。難易度は演習課題くらいで、試験時間と問題数は結構多いです。(2h,10問くらい?) (参加率は結構悪い)
最初の数回はC++の基礎(for,if)の回だったので一応プログラミング未経験でも大丈夫なようです。
入青に向けて
ひとまずはDの速度を上げるのとEの安定を目指して精進を続けていこうと思います。夏までにはFに手を出してみたいです。
それでは、文化祭の準備をさぼっていてまずいのでここらへんで終わります。また入青記事でお会いしましょう。さよなら~
更新記録
06/01 入水が危うい意味で取られたので記事の名前を少し変えました

