この記事でやること
ABC294-Ex問題 にてグラフ彩色の通り数に関する問題が出題され、その際彩色多項式なるものを勉強したので備忘録として残しておきます。
彩色多項式とは
グラフ の -彩色の通り数を に関する多項式で表したものです。
これを と表すことにします。
木の彩色多項式
頂点の木 に対し、彩色多項式は
と表せます。これは、適当な根を取って自由に色を決め、そこから親と異なる色を順に塗っていけることからすぐにわかります。
彩色多項式の漸化式
彩色多項式 と辺 について、以下の漸化式が成立します:
※ は から を除いたグラフ、 は を について縮約したグラフ
証明
グラフ の -彩色の通り数を考える。 としたとき、
- を異なる色に彩色する場合:
- の -彩色と1対1対応するため、 通り。
- を同じ色に彩色する場合:
- の -彩色と1対1対応するため、 通り。
以上より、 であり、漸化式が得られる。
単純連結グラフの彩色多項式
与えられたグラフに対し、閉路に含まれる1辺を として漸化式を適用することを木になるまで繰り返すことで得られます。*1縮約の際に多重辺ができる場合は、重複を除いて単純性が崩れないように注意しましょう。
ACコード
Submission #39887705 - AtCoder Beginner Contest 294
参考文献
https://ocw.hokudai.ac.jp/wp-content/uploads/2016/01/GraphTheory-2005-Note-10.pdf
*1:連結性を保つために閉路上の辺を選んでいます。また、この解法の計算量についてはあまりよくわかっていません。最悪ケースをかなり緩く見積もるモデルでの測定値が10^9程度の状態数となっており、実際はもっと少ないはずなので十分間に合うだろう推測しております。