Description
有一个\(n\)个点\(m\)条边的简单(即无重边无自环)无向图,现在有\(k\)种颜色,要求你给每条边染色。
然后你每次可以选择一个简单环,进行一次循环位移。如果一个染色方案能经过若干次该种操作来变成另一种染色方案,那么称这两种染色方案本质相同。
求有多少种不同的染色方案,答案对\(10^9+7\)取模。
\(1\le n\leq 50, 1\leq m, k\leq 100\)。
Solution
首先一件很显然的事情是,每个点双之间是互相独立的,也就是说最后的答案是所有点双的答案之积。所以先求一遍点双再说。
然后点双可以分为三种情况来考虑:
第一种:只有一条边的点双。这种很好处理,答案就是\(k\)。
第二种:只有一个简单环的点双。这个可以转化为一个序列染色,然后可以做若干次循环位移。假设序列(环)长\(l\),那么做\(x\)次循环位移得到的置换的轮换数为\(\gcd(l, x)\),套用一下Pólya定理就可以得到答案: \[ \frac{1}{l}\sum_{i = 0}^{l - 1}k^{\gcd(l, i)} \]
第三种:其他情况。这样的话一定会出现环套环的现象,可以证明这样可以凑出所有的置换。那么只要两种方案不同,那么他们一定会在某种颜色的使用次数上不同。所以问题就转化为了\(x_1 + x_2+\ldots+x_k = l\)(\(l\)为该点双中的边数,其中每个变量为自然数)的解的数量。这是一个经典的隔板法问题,答案为: \[ \binom{l + k - 1}{k - 1} \]
Code
1 |
|