高度典型課題
精選上級50
座標圧縮
二次元がダルい。
半分全列挙
引き出しとして持っておけば発想も発見も簡単め。
添え字でバグらせないように、N/2の配列とN-N/2の配列に最初から分けてしまうなどすると実装も楽。
行列累乗
ABC009の解説スライドが本質的なことを言っている気がするので読む。
ダブリング(最長共通祖先 (LCA)を含む)
Grundy 数
実験エスパーです。
Rolling Hash
平方分割
最大流/最小カット
二部グラフを扱う問題
二部マッチングを扱う問題
Binary Indexed Tree (BIT) を使う問題
Range Minimum Query (RMQ)
遅延評価セグメント木
一般攻撃魔法。
チートシートにあるやつはパクる。ないやつは頑張る。
区間加算一点取得は普通のセグ木にimos風に乗せるか双対セグ木でできるが、遅延セグ木も楽。
その他のテクニック
典型90の★6以上
PAST上級本
蟻本
コンテストで出てきたもの
桁DP
自分の中でテンプレを持つ。いくつかパターンがあるので精進で慣れる。
部分列DP
ゆーて応用分からん。
HL分解
FFT
Suffix-Array
未履修
Auxiliary Tree
marge-sort Tree
FPS
Zobrist Hashing
k-d tree