FrontPage 
アルゴリズムスライド  †
はじめに  †
- アルゴリズム
 
- 前処理とクエリ(構築と参照)
 
- 計算量
 
- モノイド・群(モノイドはどこから計算してもいい=並列、群は0-indexを計算できるとi-indexにできる(モノイドだとO(log n)で、群だとO(1)でできる))
  
基本  †
- 標準ライブラリについてるもの
- Vector
 
- Map(平衡二分木)
 
- Hash
 
- Priority Queue
 
- Queue(実はvector swapでできる)
 
- Stack
 
- List
 
- sort
 
- をまとめた表
 
  
- 全探索
- n^kの全探索
 
- 2^nの全探索
 
- n^mの全探索
 
- nCrの全探索
 
- n!の全探索
 
- グラフの全探索
 
  
- Union Find
 
- 累積和(和でなくても)
 
- 二次元累積和
 
- ダブリング=行列累乗
 
- 二分探索
 
- しゃくとり法
 
- 三分探索
 
- 状態遷移図
 
- 分数
 
- 多倍長演算
 
- 座標圧縮
  
数論  †
- GCD, LCM
 
- mod 素数の逆元
 
- フェルマーの小定理
 
- 分数のmod
 
- 素因数分解
- 二番目が上から抑えられていると最後に余ったものは素数
 
  
- 素数判定
 
- 素数の幅は意外と小さい
 
- 素数の個数は意外と多い
 
- 約数
 
- XOR
 
- Upper gauss記号とLower gauss記号
  
再帰  †
DP  †
- 配るDP
 
- 集めるDP
 
- 一方向のみに依存するDP
 
- 一つ前のみに依存するDP
  
ゲーム必勝法  †
- アドホック
 
- Grundy数(二人完全情報ゼロ和不偏ゲーム)
 
- 後ろから決めていく
  
グラフ  †
- 用語定義(DAG, 頂点、辺)
 
- ワーシャルフロイド
 
- ダイクストラ
 
- 経路復元
 
- 無向グラフの閉路検出
 
- 有向グラフの閉路検出とDAG化(強連結分解)
 
- 最大フロー最小カット定理
 
- フォードフルカーソン
 
- Dinic
 
- 二部マッチング
 
- 最小費用流
  
RMQ  †
- オイラーツアー
 
- 木の直径
 
- Tarjan's Offline LCA
 
- ダブリングによるLCA
 
- 重軽分解
 
- Splay木
 
- Link-Cut Tree
  
範囲クエリデータ構造  †
- モノイド・群再び
 
- モノイド・群、具体例
 
- Fenwick Tree
 
- Segment Tree
 
- 遅延Segment Tree
 
- 動的Segment Tree
  
高速フーリエ変換  †
高速ゼータ変換  †
高速メビウス変換  †
半分全列挙  †
枝刈り全探索  †
文字列  †
幾何  †
置換  †
細かいテクニック  †
- 確率的判定
 
- nの累乗空間
 
- ベン図(かぶる)
 
- 包除原理
 
- Fibonacchi数列
 
- 復元
 
- 正しい括弧列
- 「'(' の数が ')' の数を下回ることなく進んでいき, 最終的に '(' と ')' の数が等しくなる文字列」
 
- mayokoさんのセグ木二分探索解
 
   
ソート  †
- クイックソート
 
- バケツソート
 
- Priority queueで自分でソート(D1E スターウォーズのやつ)
  
細かい注意  †
- intの*%/はマジ注意
 
- 数字リテラルはキャストする
  
 
   |