NISHIO Hirokazu
[Translate]
UnionFind
集合の併合と、共通の集合かどうかのチェックが高速な
データ構造
。
グラフに辺を追加して、二頂点が連結かどうかのチェックが高速、という捉え方もできる。
N個の対象間の関係に関して、それがiffに分解できるならグラフの辺として記述できる
例えばグーチョキパーのいずれかである対象があったときに「xはyに勝つ」は、「xがグーである iff yがチョキである」のような3つのiffに分解できるので3Nの頂点集合に3本の辺を追加することに相当する
連結成分は条件を充足する解に相当する
iffでない場合→
2-SAT
https://judge.yosupo.jp/submission/12685
素集合データ構造
Wikipedia
Disjoint Set Union
(
DSU
)
Union-Find
Tweet
Related Pages
ARC111
Luzhiled's memo
僕のatcoderの学び方(〜水色)
プログラミングコンテストチャレンジブック
クラスカル法
ABC177
ARC106
ACLPC A
素集合データ構造
abc120_d
ABC157D
ARC032B
二部グラフ判定
codefestival_2016_final_C
AtCoder Library
ACL Beginner Contest
DSU
データ構造
→
データ構造
×
平衡二分探索木
×
秋葉_拓哉
×
treap
×
rbst
×
スプレー木
×
block_linked_list
×
skip_list
×
スキップリスト
×
平衡二分木
→
プログラミングコンテストでのデータ構造2平衡二分探索木編
→
二分ヒープ
×
データ構造
×
二分ヒープの挿入が平均定数時間
→
二項ヒープ
→
二分ヒープ
×
データ構造
×
ヒープキュー
×
優先度キュー
×
priority_queue
×
ある集合に値が追加削除される。最小の値を取得したい。
×
m個の数がn個の集合を移動する。集合の最小要素を得たい
×
n個の値が更新される、最小値を知りたい
×
ヒープのk番目の値を更新したい
×
中央値
×
best_kの取得
→
heapq
→
multiset
×
abc170_e
×
heapq
×
heapq+dict
×
bisect
×
フェニック木
×
bit
×
座標圧縮
×
平衡二分木
×
rbst
×
データ構造
→
Pythonでmultiset
→
データ構造
×
秋葉_拓哉
×
遅延伝搬セグメント木
×
heapq
×
フェニック木
→
セグメント木
→
acl1
×
scc
×
DSU
×
順番を固定することで覚えるべき情報を減らす
×
ゼロフィルのリンクトリスト
×
フェニック木
×
削除可能集合で不等号条件
×
二者間の関係からより大きな構造ができる
→
ACL1A
→
atcoder_library_practice_contest
×
強連結成分分解
×
2-sat
→
ACLPC H
→
連結リスト
×
データ構造
→
リンクトリスト
→
蟻本
×
binary_lndexed_tree
×
bit
×
fenwick_tree
×
値域と定義域の交換
×
multiset
×
座標圧縮
×
データ構造
→
フェニック木
→
rbst
×
avl木
×
赤黒木
×
treap
×
van_emde_boas_tree
×
データ構造
→
平衡二分木
→
データ構造
→
Trie
"
Engineer's way of creating knowledge
" the English version of my book is now available on
[Engineer's way of creating knowledge]
(C)NISHIO Hirokazu / Converted from
[Scrapbox]
at
11/23/2025, 5:15:10 PM
[Edit]