#include "dsu_merging.hpp"
公開型 | |
using | Type = typename Semigroup::Type |
公開メンバ関数 | |
DsuMerging ()=default | |
DsuMerging (int n, const vector< Type > &v) | |
コンストラクタ | |
int | find (int x) |
頂点 x を含む連結成分の代表元を返す | |
bool | merge (int x, int y) |
頂点 x と y を連結し、true を返す | |
const Type & | get (int x) |
頂点 x を含む連結成分の半群積を返す | |
int | size (int x) const |
頂点 x を含む連結成分のサイズを返す | |
bool | same (int x, int y) const |
頂点 x と y が同じ連結成分に属するか否かを返す | |
int | count () const |
連結成分の個数を返す | |
vector< vector< int > > | groups () const |
各頂点を連結成分に分解する | |
値をマージする DSU
Semigroup | 半群 |
dsu_merging.hpp の 11 行目に定義があります。
using DsuMerging< Semigroup >::Type = typename Semigroup::Type |
dsu_merging.hpp の 12 行目に定義があります。
|
default |
|
inline |
コンストラクタ
dsu_merging.hpp の 16 行目に定義があります。
|
inline |
|
inline |
頂点 x と y を連結し、true を返す
既に連結されている場合は false を返す
dsu_merging.hpp の 33 行目に定義があります。
参照先 find().
|
inline |
頂点 x を含む連結成分の半群積を返す
dsu_merging.hpp の 48 行目に定義があります。
|
inline |
頂点 x を含む連結成分のサイズを返す
dsu_merging.hpp の 51 行目に定義があります。
|
inline |
|
inline |
連結成分の個数を返す
dsu_merging.hpp の 57 行目に定義があります。
|
inline |
各頂点を連結成分に分解する
dsu_merging.hpp の 60 行目に定義があります。