
AtCoder Algorithm Lectures 公式アカウントです。 新着講座や過去講座を定期的に紹介します。 競技プログラミングをやったことがない方も、ぜひ覗いてみてください。 AtCoder公式アカウント → @atcoder
Joined July 2026
- Tweets72
- Following1
- Followers589
- Likes2
Pinned Tweet
AtCoder Algorithm Lectures の講座を紹介します
新着講座だけでなく過去講座も定期的に紹介します
・競技プログラミングを上達したい方
・数学や情報科学に興味がある方(競プロ未経験でもOK)
などさまざまな方に向けた講座があります
目的や興味に合った講座を見つけるきっかけになれば幸いです
「文字列の並べ替えと辞書順最小化」
複数の文字列を並べ替えて結合するとき、全体を辞書順最小にするにはどうすればよいでしょうか?
最適な並べ替え順を交換論法から導きます。議論では、文字列を無限回繰り返すという一見変わった見方も登場します。
講座:info.atcoder.jp/entry/algori…
「Wavelet Matrix(発展)」
以前紹介した「Wavelet Matrix(基礎)」の続編です。
基本的な構造や kth smallest の求め方を理解した方に向けて、モノイド集約値、矩形クエリ、二分探索など、Wavelet Matrix のさらに幅広い応用を解説します。
講座:info.atcoder.jp/entry/algori…
「Euclid の互除法」
Euclid の互除法は、最大公約数を求める整数論の基本アルゴリズムとして有名です。
・59 x + 123 y = 100 を満たす整数 x, y を見つける
といった問題にも応用できます。整数論に興味がある、競技プログラミングをしない方にもおすすめです。
講座:info.atcoder.jp/entry/algori…
「スパーステーブル」
スパーステーブルは、整数列に対して
・A[L], ..., A[R] の最小値は?
といった、クエリに O(1) 時間で答えられるデータ構造です。
スパーステーブルは理解・実装が易しく、累積和の次に学ぶ区間クエリを扱うデータ構造としても適切です。
講座:info.atcoder.jp/entry/algori…
AtCoder Algorithm Lectures retweeted
・昔競プロをしていた引退勢
引退に限りませんが、競プロを続けた結果、コンテスト1回から得られる刺激や学びが減ってきて、熱意を失ってしまった方は結構居るのではないかと思います
そのような方に、再び競プロでの学びを思い出すきっかけになると思うので、面白そうな講座を探してみてください
AtCoder Algorithm Lectures retweeted
・世界大会を目指す方
初心者向けの教材はたくさん再生産されています(これも重要)
上級者も使えるものは、作成に実力やコストが必要な一方評価されにくいこともあり、まとまった教材は少ないです
AtCoderのおかげでそのような教材も作成できるようになりました、世界最高レベルを目指します
AtCoder Algorithm Lectures retweeted
・競プロ未経験で数学やアルゴリズムが好きな方
競プロは算数数学のような話題に触れ続けられるコミュニティで、プログラミングや競争に興味技がない人にとっても面白い、魅力的な話題が多くあります。
「プログラムでコンテスト出よう」とは到底思えない人でも界隈を知るきっかけを作りたいです
【本アカウントについて】
競技プログラミングや周辺の理論・テクニックを紹介します
・競プロ未経験で数学やアルゴリズムが好きな方
・競プロで世界大会を目指す方
・昔競プロをしていた引退勢
など、様々な方に合う講座があるので、ぜひフォローしてください
AALとは:info.atcoder.jp/entry/algori…
「Parking Function」
n 台の車が、それぞれ希望する駐車位置から順に空き場所を探して駐車します
すべての車が駐車できるような希望の組は、実は (n+1)^(n-1) 通りです
なぜこんなに簡潔な公式になるのでしょうか?円環を利用した巧妙な数え上げを紹介します
講座:info.atcoder.jp/entry/algori…
(新着)「Prüfer code」
N 頂点のラベル付き木の個数は N の N-2 乗です。なぜこのような簡潔な公式が成り立つのでしょうか?
木と整数列を対応させる Prüfer code を解説します。
Cayley の公式の証明から、さまざまな木や森の数え上げへの応用まで扱います。
講座:info.atcoder.jp/entry/algori…
「線形漸化的数列の第K項」
線形漸化式から、第 K 項を高速に求める方法を解説します。
多項式剰余や、偶数次・奇数次部分の取り出しを用いることで、行列累乗よりも高速なアルゴリズムとして、Fiduccia のアルゴリズムと Bostan–Mori のアルゴリズムを導出します。
講座:info.atcoder.jp/entry/algori…
「Wavelet Matrix(基礎)」
Wavelet Matrix は、数列の任意の区間に対して Binary Trie の探索を行えるデータ構造です。
各層の 0, 1 列の累積和を利用して、このような探索を実現します。
図を見ながら仕組みや実装方法を理解できる講座です。
講座:info.atcoder.jp/entry/algori…
「素数篩」
合成数をふるい落とし、効率よく素数を列挙する「エラトステネスの篩」を解説します。さらに、素因数分解への応用や、線形篩・区間篩などの発展形も扱います。
実装も簡潔で、競技プログラミング初心者の方にも取り組みやすい講座です。
講座:info.atcoder.jp/entry/algori…
「トーナメント」
総当たり戦の勝敗を、勝者から敗者へ辺を張ることで表した有向グラフを「トーナメント」と呼びます。
この単純な定義から、強連結成分分解やハミルトンパスなどに関する、強い性質が導かれます。
グラフ理論の面白さを味わえる講座です。
講座:info.atcoder.jp/entry/algori…
「ランダムテストによるデバッグ」
初心者からコンテストに少し慣れてきた方まで、幅広い方におすすめの講座です。
ランダムテストは非常に重要なデバッグ手法で、コンテスト成績にも直結します。
解説動画での実践もぜひ参考にしてください。
講座:info.atcoder.jp/entry/algori…
「競技プログラミング基本用語集」
競技プログラミングの問題文や解説、数学などの学術書では、高校数学では見慣れない用語や記号も登場します。
本講座では、様々な分野で共通の基本用語や記号について、高校数学との慣習の違いにも注意して解説しています。
講座:info.atcoder.jp/entry/algori…
(新着)「Todd–Coxeter 法」
AB文字列に対して
AA, BB の挿入・削除
ABA と BAB の置換
ができるとします。操作で互いに変形できる文字列は、実は 6 種類に分類されます。
このような構造を、関係式からグラフとして構成する「Todd–Coxeter 法」を解説します。
講座:info.atcoder.jp/entry/algori…
「Sperner の定理」
1, 2, ..., n からなる集合を、どの 2 つにも包含関係ができないよう選ぶとき、最大で何個まで選べるでしょう?
この問いに答えるSpernerの定理を、2通りの方法で証明します
前提知識不要で、組合せ論や集合が好きな方は、特に楽しめる講座です
講座:info.atcoder.jp/entry/algori…
「Bostan–Mori のアルゴリズム(発展)」
線形漸化的数列の第 K 項を高速に求める Bostan–Mori 法を、さらに掘り下げます。
連続する複数項の計算や数列のシフトへの応用、転置原理との関係、FFT を利用した高速化を解説する、上級者向けの講座です。
講座:info.atcoder.jp/entry/algori…
「未訪問頂点へ進むグラフゲーム」
未訪問の頂点を選びながら駒を動かし、動けなくなった方が負けとなるゲームを考えます
一見すると複雑ですが、実は勝敗は最大マッチングによって特徴づけられます
組合せゲームの中でも、解法が珍しく意外性のある有名問題です
講座:info.atcoder.jp/entry/algori…
