yosupo06 / library-checker-problems

The problem data (Test case generator, judge's solution, task, ...) of Library Checker
https://judge.yosupo.jp/
Apache License 2.0
509 stars 117 forks source link

[問題案] Edge-Coloring of Bipartite Graphs #393

Closed maspypy closed 4 years ago

maspypy commented 4 years ago

雑に、置いておきます。ぜひどなたかにもらって欲しい案件。

(任意) 問題ID: {ID} 問題名: {Edge-Coloring of Bipartite Graphs}

参考資料: ・二部グラフの辺彩色数は \Delta(G) = \max_v \deg(v) に等しい。 https://mathworld.wolfram.com/KoenigsLineColoringTheorem.html ・catupper さんによるアルゴリズム解説(これは O(VE) かな) https://www.slideshare.net/catupper/ss-25736611 ・「Edge-Coloring of Bipartite Graphs」でぐぐると色々出てきて、 E\log \Delta(G)くらいにはなるっぽい。 ・問題例 AGC037-D、GCJ2020qual-E などで利用できる構築です。まぁフローでいけるんですけど。

問題概要

二部グラフが与えられる。 なるべく少ない色での辺彩色を構築せよ。

入力

出力

制約

とりあえず、マッチングを1つずつ取り去る方法と差別化できるとうれしい気分。

maspypy commented 4 years ago

snukeさんの調査速報 https://twitter.com/snuke_/status/1246630370415538176?s=21

yosupo06 commented 4 years ago

見ました 計算量をまとめると D = max degree = chromatic number (\Deltaはgithubで書くには大変なので…)として

が素直なやつで、後はオーダーが落ちるやつが実用的に早いかという話で

といった感じでしょうか、まだ(2)しか理解してない…

maspypy commented 4 years ago

参考資料:O(M\log M) https://www.tau.ac.il/~nogaa/PDFS/lex2.pdf self-contained で実質1ページくらいなので、読みやすいです。

yosupo06 commented 4 years ago

入力 (参考: https://judge.yosupo.jp/problem/bipartitematching )

L R M
a b
a b
: 
a b

出力

K (=彩色数)
color_0
color_1
:
color_{M - 1}

がいいと思っています