离散数学课程期末项目-LOJ6519解题报告
主要利用群论-Burside引理
、计数原理
、容斥原理
及一些数论
知识解决该问题
题意
对$n$个珠子组成的手环染黑白两种颜色,手环旋转同构但不对称同构。且手环的染色方案要求如下:
$n$个珠子中恰好有$m$个黑色珠子和$n-m$个白色珠子
手环不包含任何一段连续的$k+1$个黑色珠子
问有多少种手环染色的方案
解题过程
对于同构求染色方案的题目,容易想到Burnside引理
及Polya定理
。尝试利用Burnside
引理求解。
由于只考虑旋转同构,由Burnside引理
,
$$
答案=\frac{\sum_{i=1}^{n}C(i)}n
$$
其中$i$表示顺时针旋转$i$个珠子,$C(i)$表示旋转$i$个珠子时的不动点个数。
当旋转$i$个珠子时,设$d_i=\gcd(n,i)$。若某种着色方案为不动点,则$a_i=a_{i+d_i\pmod n}$,即原手环可以等价为一个长度为$d_i$的小环复制$\frac n {d_i}$次。
因此,对于$i_1$和$i_2$,只要$\gcd(n,i_1)=\gcd(n,i_2)$,则二者对不动点个数的贡献就相同。考虑将这样的$i$一起统计答案。
设$\gcd(i,n)=d$,则当$\frac n d|m$时(黑色珠子的个数需要是小环循环次数的倍数),才可能有合法方案。也即$\frac n d|\gcd(n,m)$
设$f(d)$为小环长度为$d$,使得其中$\frac{md}n$个小球为黑色,且不存在连续$k+1$个黑色珠子的方案数,则
$$
答案=\frac{\sum _ {\frac{n}{d}|\gcd(n,m)}\sum _ {i=1}^{n}[\gcd(n,i)=d]f(d)}n \\
=\frac{\sum _ {\frac{n}{d}|\gcd(n,m)}\sum _ {i=1}^{\frac n d}[\gcd(\frac n d,i)=1]f(d)}n \\
=\frac{\sum _ {\frac{n}{d}|\gcd(n,m)}\varphi(\frac n d) f(d)}n
$$
下面讨论如何求解$f(d)$
首先,对于小环的染色方案数求解,不需要考虑旋转同构的问题。
考虑断环成链。将小环假设成链的情况考虑,再加上首尾的限制。
设首部和尾部连续黑珠之和为$i$,则
$$
\begin{cases}
f(d)=\binom d{\frac{md}n}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~k\le\frac{md}{n}时\\
f(d)=\sum_{i=0}^k (i+1)\cdot g(d-i-2,\frac{md}{n}-i)~~~~~~~~其余情况
\end{cases}
$$
其中$g(x,y)$表示长度为$x$的链上将$y$个珠子染黑且不存在连续$k+1$个黑珠子的方案数。
考虑一种常见的容斥思路,设$z=x-y+1$,即将白球看成板(隔板法)时黑球可插入的位置数
$$
g(x,y)=所有方案-至少出现一个不合法段的方案数+至少出现两个不合法段的方案数-\dots \\
=\sum _ {i=0} ^ {\min(z,\frac{y}{k+1})}(-1)^i\binom z i\cdot h(z,y-i\cdot(k+1))
$$
其中$h(x,y)$表示将$y$个相同的小球放入$x$个不同的盒子中(允许空盒)的方案数,隔板法得:
$$
h(x,y)=\binom{x+y-1}{x-1}
$$
即可在$O(\sum_{d|n}k\cdot\frac{\frac{md}n}k)=O(\sigma(n))$的时间复杂度下求解。其中$\sigma(n)$为约数和函数,且$O(\sigma(n))\le O(n\sqrt n)$http://oeis.org/A000203
代码如下
1 | //by Richard |