【存档】环形染色公式推导

problem

有一个环,环上有 nn 个格。先要给这 nn 个格子染上 mm 种颜色。每个格子只能染一种颜色,相邻两个格子颜色不同。问方案个数。

sol

我们先把他当链做:这样有 m(m1)n1m (m-1)^{n-1} 种做法。

在变成环,分类讨论:

  1. 11nn 相同这样就有 fn1f_{n-1} 种方案

  2. 反之,为 fnf_n 种做法

所以 fn+fn1=m(m1)n1f_n+f_{n-1}=m(m-1)^{n-1}

还可以化:

fn+fn1=m(m1)n1=(m1+1)(m1)n1=(m1)n+(m1)n1f_n+f_{n-1}=m(m-1)^{n-1}=(m-1+1)(m-1)^{n-1}=(m-1)^n+(m-1)^{n-1}

移项,得

fn(m1)n=(fn1(m1)n1)f_n-(m-1)^n=-(f_{n-1}-(m-1)^{n-1})

我们令 bn=fn(m1)nb_n={f_n-(m-1)^n},你会发现

bnbn1=1\frac{b_n}{b_{n-1}}=-1,所以 bb 是个等比数列。

n=2n=2 时,显然,f2=m(m1)f_2=m(m-1),则

b2=f2(m1)2=m(m1)(m1)2=m1b_2=f_2-(m-1)^2=m(m-1)-(m-1)^2=m-1

所以 bn=b2×(1)n2=(1)n×(m1)b_n=b_2 \times (-1)^{n-2} = (-1)^n\times (m-1)

又因为 fn=bn+(m1)nf_n=b_n+(m-1)^n

所以 fn=(m1)n+(1)n×(m1)f_n=(m-1)^n+(-1)^n\times(m-1)


【存档】环形染色公式推导
http://sundingjia.github.io/2026/02/09/【存档】环形染色公式推导/
作者
sundingjia
发布于
2026年2月9日
许可协议