Rerooting
(Graph/rerooting.hpp)
使い方
Rerooting(int n)
: $n$ 頂点のデータ構造を作成。テンプレートには
-
M
: 値の型
-
N
: 作用素の型
-
M (*f)(M,N)
: 値に作用素を作用する関数
-
M (*g)(M,int)
: 値に頂点 $v$ の重みを作用する関数
-
M (*h)(M,M)
: 値同士をマージする関数
-
M (*e)()
: h
の単位元
を指定する。
void add_edge(int u,int v,N w)
: グラフに重み $w$ の辺 $(u,v)$ を追加。
vector<M> run()
: 各頂点を根としたときの結果。
Verified with
Code
Back to top page