平衡二分木
とりあえず、AVL木でset型、map型、配列型を持っておけばOK
永続遅延平衡二分木とか言うヤバがatcoderに出たことがあるので、持っておいたほうがいい(本当?)(僕は持ってないです)
セグメント木
双対/遅延/通常を動的/通常の2つで持っておくといいかも
2Dセグ木もyukicoderではよく見る
union-find
UF:これはみんな持ってそう
マージテクUF:データを乗せてくっつける(実装省略に使える)
重み付きUF:atcoderで出たこともあったはず
online/offline dynamic connectivity:
...よければ
データ構造
binary trie:
xor系はatcoderで頻出!!(binary trieは作っておけば役に立つかもくらい...)
bit vector:
WM用
cartesian tree:
もしかしたらなにかに使うかも...
累積和:
ライブラリ化したけどフルスクラッチの方が慣れると書きやすい
disjoint sparse table:
冪等性が要らない状態で静的にの区間クエリ
32分木trie:
高速なsetの実装に使える(newをメモリプールで高速しないと速くならない?)
Trie for Fixed Universe Set - 週刊 spaghetti_source - TopCoder部
木構造の実装テクニック - Qiita
kdtree:
要らなそう
leftist_heap:
永続化してからが本番
永続マージ可能なデータ構造はとても使える
Li_Chao_tree:
convex hull trickするやつ
自分のはdoubleで死ぬ
RMQ:
黄色になってから作った
のRMQ
skew_heap:
手軽なマージ可能ヒープ、非想定が殴れるかも
sparse_table:
実装も軽いし、disjoint sparse tableより定数倍が軽いかも知れない(冪等性が必要)
SWAG:
少し前に流行ったやつ
尺取法と相性がいい
wavelet_matrix:
何でも出来るけど自分は範囲内でk番目に大きい値を取るやつしか作ってない
必要になったら追加する予定
永続配列:
カラフルツリーなどatcoderにも殴れる問題がある印象
永続leftest heap:
永続マージ可能ヒープ、強すぎる
永続セグメント木:
意外と使い所が無い
永続union find:
atcoderで出がち(並列二分探索を想定解に出来るため)
永続queue:
永続配列使った実装しか持ってないけどこれで十分?
永続stack:
永続配列使った実装しか持ってないけどこれで十分?
簡単に作れるとの情報をもらったので、作ります
ダイクストラ:
pbds使用前提でに高速化出来るやつは持ってて損は無いかも
Travel by Carでafter contestのTLEを防ぐことが出来た例あり
重心分解:
この前記事を書いた
【競技プログラミング】重心分解を25行で書く方法 - Qiita
支配木:
趣味
最大独立集合:
atcoderで類題が出ても問題はなさそう(ほんと?)
euler tour tree:
動的木の一種
HL分解:
atcoderでも使用しやすいかも
LCA:
これは作っておいたほうがいい
link cut tree:
殴れるかも知れない
最大流:
普通にatcoderにでる(と思う)
最小費用流:
普通にatcoderにでる
コストスケーリングも持ってる(どや)
全方位木DP:
ABC勝ちたいなら持っておくべきなきがする
強連結成分分解:
これも持っておいたほうが良さそう
top tree:
作れないので要らない事にしておく
二辺連結成分分解:
あって損はしない
2-sat:
atcoderで普通に出ると思う(よく知らず)
行列
行列式:
行列木定理とかatcoderで出たら(出るの?)
疎行列は色々な高速化がある
行列累乗:
ABCで出たことがあるので持っとくべき
対角化:
持っておくべきだけど毎回フルスクラッチ
noshi基底が便利(集合をxorして特定の値を作ったり、最大値を作ったり)
AhoCorasick:
複数文字列検索のお供、オートマトン上をDPする応用は自分には難しいかも
manacher:
あんまり理解してないけど回文といえばこれとeertree
Zアルゴリズム:
はい
動的Zアルゴリズム:
これは流行る(*´ω`*)
rolling hash:
昔過ぎて設計思想がむちゃくちゃなので、フルスクラッチすることが多い
subseqence:
部分列をオートマトン化して保持するやつ(俗に言う部分列DPが出来る)
suffix array:
使ったことなし
suffix automaton:
いずれは使いこなしたい
trie:
atcoderにあってびっくり
DP
monotone_minima
簡単だけど強力
オフラインオンライン変換
簡単だけど強力
をとかで解く事ができる