#include "dsu_potentialized.hpp"
公開型 | |
using | Type = typename Group::Type |
公開メンバ関数 | |
DsuPotentialized ()=default | |
DsuPotentialized (int n) | |
コンストラクタ | |
int | find (int x) |
頂点 x を含む連結成分の代表元を返す | |
bool | merge (int x, int y, Type w) |
頂点 x と y を連結し、weight(x) = op(weight(y), w) とする | |
Type | weight (int x) |
頂点 x のポテンシャルを返す | |
Type | diff (int x, int y) |
op(inv(weight(y)), weight(x)) (x と y の間のポテンシャル差)を返す | |
int | size (int x) |
頂点 x を含む連結成分のサイズを返す | |
bool | same (int x, int y) |
頂点 x と y が同じ連結成分に属するか否かを返す | |
int | count () |
連結成分の個数を返す | |
vector< vector< int > > | groups () |
各頂点を連結成分に分解する | |
ポテンシャル付き DSU
Group | 群 |
dsu_potentialized.hpp の 6 行目に定義があります。
using DsuPotentialized< Group >::Type = typename Group::Type |
dsu_potentialized.hpp の 7 行目に定義があります。
|
default |
|
inline |
コンストラクタ
dsu_potentialized.hpp の 11 行目に定義があります。
|
inline |
頂点 x を含む連結成分の代表元を返す
dsu_potentialized.hpp の 19 行目に定義があります。
|
inline |
頂点 x と y を連結し、weight(x) = op(weight(y), w) とする
dsu_potentialized.hpp の 27 行目に定義があります。
|
inline |
|
inline |
op(inv(weight(y)), weight(x)) (x と y の間のポテンシャル差)を返す
dsu_potentialized.hpp の 47 行目に定義があります。
|
inline |
頂点 x を含む連結成分のサイズを返す
dsu_potentialized.hpp の 50 行目に定義があります。
|
inline |
|
inline |
連結成分の個数を返す
dsu_potentialized.hpp の 56 行目に定義があります。
|
inline |
各頂点を連結成分に分解する
dsu_potentialized.hpp の 59 行目に定義があります。