入出力と計算量の見積もりから、全探索・ビット全探索・二分探索・累積和・動的計画法・グラフ応用まで。全30レッスンで「制約を見て解法を決め、時間内に書き切る」ところまで進みます。全回が「問題 → 実装手順 → 回答例 → 発展課題」の演習形式で、コードと実行時間はすべて Python 3.14.2 で実際に動かしたものです。
全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、
気になるところだけ拾い読みしてもかまいません。
※ 全30レッスンに「問題 → 実装手順 → 回答例 → 発展課題」の演習が入っています。解説だけの回はありません。
※ サンプルはブラウザ内でそのまま実行できます(標準ライブラリだけを使っています)。件数の大きい計測は、手元の python3 で試してください。
入力の受け取り方と、制約から計算量を逆算する考え方をそろえます。最後は桁あふれ・浮動小数・提出前チェックまで、落ちる前に自分で気づけるところまで進みます。
まず全部数える解法を書けるようにします。二重ループ・ビット全探索・順列・再帰、そして枝刈りで N クイーンを 65 倍速くするところまで。
答えを二分探索する・右端を戻さない・前処理して何度も使う、の 3 つを身につけます。しゃくとり法で 1,358 倍、累積和で秒単位の差がつくことを実測で確かめます。
「dp に何を置くか」を決める練習を 7 回かけて行います。ナップサック・二次元 DP・区間 DP・bitDP まで、毎回素朴な解法と突き合わせて進めます。
隣接リストから始めて、最短経路の 4 つの道具・Union-Find・最小全域木・トポロジカルソートへ。どれも「正しい順番で処理する」という一点でつながっています。
制約から解法を決める手順を 1 問通しでやり、典型 3 問を続けて解きます。最後は反例を自動で見つけて縮める道具を作って締めます。
全30レッスンを終えたら、次はこの道具を別の角度から固める番です。アルゴリズム基礎 入門コース で実務のコードの計算量を測り、プログラミングのための数学 入門コース で式を読む力を足し、Python 入門コース で書き方そのものを固める——どれもこのコースの続きになります。メンバーシップで全コースが解放されます。