Kyopro Library
 
読み取り中…
検索中…
一致する文字列を見つけられません
centroid.hpp ファイル

[ソースコード]

関数

int TreeCentroid (const vector< vector< int > > &g, int root, vector< int > &seen, vector< int > &sz)
 重心分解
 

関数詳解

◆ TreeCentroid()

int TreeCentroid ( const vector< vector< int > > & g,
int root,
vector< int > & seen,
vector< int > & sz )

重心分解

引数
seen探索済みフラグ
sz各頂点の部分木のサイズ
vector<int> sz(N);
vector<bool> seen(N);
auto centroid_decomposition = [&](auto self, int root) -> void {
int centroid = TreeCentroid(g, root, seen, sz);
seen[centroid] = true;
// ここに処理を書く
for (int nxt : g[centroid]) {
if (seen[nxt]) continue;
self(self, nxt);
}
};
centroid_decomposition(centroid_decomposition, 0);
int TreeCentroid(const vector< vector< int > > &g, int root, vector< int > &seen, vector< int > &sz)
重心分解
Definition centroid.hpp:27

centroid.hpp27 行目に定義があります。