View on GitHub

cp-library

二部グラフの辺彩色

C++ 用ライブラリ一覧に戻る

ソースコード

nachia/graph/bipartite-edge-coloring.hpp

主な機能

二部グラフの最小辺彩色を求める。辺彩色数は最大次数に一致する。

つまり、各辺に $0$ 以上 $D$ 未満 ( $D$ は最大次数) の整数を割り当て、端点を共有するどの $2$ 辺も割り当てられた値が異なるようにする。

関数

BipartiteEdgeColor

std::vector<int>
BipartiteEdgeColor(
    int n1,
    int n2,
    std::vector<std::pair<int,int>> edges
);

左側頂点と右側頂点にそれぞれ番号が振られているとして、 edges の要素で辺を表す。

最小辺彩色を求め、長さ $m$ の配列を返す。各要素は同じ番号の辺に割り当てる整数 ( その辺を塗る色 ) である。

参考


TOP PAGE