概要
以下の 2 種類のクエリを処理します。
と同じ集合の要素を全て列挙します。
時間計算量 を含む集合の要素数
がそれぞれ含まれる集合同士を併合します。
が同じ集合に含まれているとバグりますが検出はできません。
時間計算量
理論
同一集合内のノードを片方向循環リストで数珠つなぎにします。
実装では配列を用いて、要素 の次の要素を で表現するとよいと思います。
は を行うだけです。
これを
こう
実装
Library/union_enumerate.cpp at master · noshi91/Library · GitHub