KoseTの競技プログラミング辞書
全探索
  • ビット全探索
  • 深さ優先探索
  • 幅優先探索
  • 順列の全探索
数学
  • ユークリッドの互除法
  • 拡張ユークリッドの互除法
  • 中国剰余定理
  • 約数全列挙
  • 素因数分解
  • 最小公倍数
  • べき乗の計算
  • nCrの公式(n+1Cr+1 = nCr+1 + nCr)
  • オイラーのファイ関数
  • オイラーのファイ関数テーブル
  • ベル数
  • ラグランジュ補間
  • 二項係数
  • 二項係数テーブル
  • 任意mod畳み込み(Arbitrary-Mod-Convolution)
  • 分割数
  • 分割数テーブル
  • 商列挙
  • 形式的冪吸収
  • 第二種スターリング数(Stirling-Number-Of-The-Second-Kind)
  • 約数列挙
  • 素因数分解
  • 素数テーブル
  • 素数判定
  • 組合せ
  • 行列演算
  • 進数変換
  • 階乗
  • 離散対数問題
  • 高速フーリエ変換
  • Schwartz-Zippelの補題
幾何学
  • 点と直線の距離の公式
  • 異なる二つの円の関係
  • 三つの点の間の角度
  • 異なる三つの点を通る円の中心(外接円)
  • 幾何テンプレート
動的計画法
  • ビットDP
  • 桁DP
  • 区間DP
  • Divide-And-Conquer-Optimization
  • Monotone-Minima
  • スライド最小値(Slide-Min)
  • 一次元累積和
  • 二次元累積和
  • 個数制限付きナップサック
  • 最大長方形
  • 最適二分探索木
  • 最長増加部分列
データ構造
  • セグメント木
  • 遅延セグメント木
  • Binary Indexed Tree
  • fenwick木
  • Binary-Trie
  • Convex-Hull-Trick-Add-Monotone
  • Li-Chao-Tree
  • Link-Cut木
  • ウェーブレット行列
  • スペーステーブル(Sparse-Table)
 
  • スライド区間の昇降k個の和
 
  • トライ木
 
  • マージ可能ヒープ(Skew-Heap)
 
  • 列の平方分割(Sqrt-Decomposition)
 
  • 平衡二分探索木(RBST)
 
  • 平衡二分探索木(Red-Black-Tree)
 
  • 永続配列(Persistent-Array)
modにおける計算
  • nCrの計算
  • 逆元の計算
  • modintの全体
グループ化
  • Unionfind
最短経路問題
  • 単一始点最短路(Dijkstra)
  • 単一始点最短路(Bellman-Ford)
  • 単一始点最短路(SPFA)
  • 全点対間最短路(Warshall-Floyd)
文字列の操作
  • KMP法
  • Boyer-Moore法
グラフ
  • オイラー路(Eulerian-Trail)
  • ハンガリアン法(Hungarian)
  • 二部グラフの最大マッチング(Bipartite-Matching)
  • 二部グラフの最大マッチング(Hopcroft-Karp)
  • ホールの結婚定理
  • タットの定理
  • 二重辺連結成分分解(Two-Edge-Connected-Components)
  • 二重頂点連結成分分解(Bi-Connected-Components)
  • 強連結成分分解(SCC)
  • トポロジカルソート
  • 2-SAT
  • 彩色数(Welch-Powell)
  • 最大クリーク
  • トリープ
  • Tarjanのアルゴリズム
  • Kahnのアルゴリズム
最大流量問題
  • Ford-Fullkerson法
  • Dinic
  • Push-Relabel
  • メンガーの定理
最小費用流
  • 最小流量制限付き最大流
  • 最小費用流(Primal-Dual)
最大独立集合
  • Maximum-Independent-Set
最小全域有向木
  • Chu-Liu/Edmond
木
  • 木の直径
  • 最小全域木(プリム法)
  • 最小全域木(クラスカル法)
  • 最小全域木(ボルブカのアルゴリズム)
  • 最近共通祖先(ダブリング法)
 
  • HL分解(Heavy-Light-Decomposition)
 
  • 全方位木DP
 
  • 木の重心分解(Centroid-Decomposition)
 
  • 根付き木に変換
 
  • 木DPと全方位木DP
文字列アルゴリズム
  • ローリングハッシュ
  • Suffix Array
  • LCP
  • KMP
  • Trie
  • Aho-Corasick
  • Z-algorithm
  • Palindromic Tree, eertree
  • Suffix Automaton
  • Manacher
  • Suffix Tree
ゲーム問題
  • Grundy数
その他
  • 橋/関節点(LowLink)
  • ダブリング
  • 包除原理
  • 燃やす埋める問題
  • 牛ゲー
  • Mo's algorithm
  • Offline-Dynamic-Connectivity
  • サイコロ(Dice)
  • タイマー(Timer)
  • 乱数生成器
  • 座標圧縮
  • imos法
  • 高速Kitamasa法
  • 高速入力
  • オイラーの公式
  • クラトフスキーの定理
  • 打ち切りがある場合(TLEにならない)問題のリンク
WAを出したときに確認すること
  • vectorで比較していない
  • intで入りきれるか
  • オーバーフローしてないか(2乗等)
  • 0で割ったりしていないか
  • 先入観が招いたミスしてないか[x-y座標ミス](https://atcoder.jp/contests/abc246/tasks/abc246_e)
  • 正負の代わるタイミングを求める問題では、そもそも正か[総和は正かの確認ミス](https://atcoder.jp/contests/abc240/tasks/abc240_f)
考え方が分からない場合
  • 状態数が少ないか
  • 実際にシミュレーションしてみる
  • Luzhiledのライブラリ[リンク](https://ei1333.github.io/luzhiled/)
  • AtCoderライブラリ[リンク](https://github.com/atcoder/ac-library/tree/master/atcoder)
  • OEIS(The On-Line Encyclopedia of Integer Sequences)[リンク](https://oeis.org/)
  • 関数表示(Demos|グラフ計算機)[リンク](https://www.desmos.com/calculator?lang=ja)
  • Graph表示(Graph Editor)[リンク](https://csacademy.com/app/graph_editor/)