这题数据范围真是低到令人发指……完全可以用 Lucas / ExLucas 的【雾】
可以作为一道组合数学的入门题来做
给初学者讲一下排列组合(?)
首先考虑
n
n
n 个不同数中选
m
m
m 个有序排成一列一共有多少种方法,显然第一个位置有
n
n
n 中选法,第二个位置有
n
−
1
n-1
n−1 种选法(因为第一个位置已经确定了),以此类推,总数就是
n
!
(
n
−
m
)
!
\frac{n!}{(n-m)!}
(n−m)!n!
其中
n
!
=
∏
i
=
1
n
i
=
n
×
(
n
−
1
)
×
.
.
.
×
1
n!=\prod_{i=1}^{n}i=n\times(n-1)\times...\times1
n!=i=1∏ni=n×(n−1)×...×1
特殊地
0
!
=
1
0!=1
0!=1
(为了防止
1
0
\frac{1}{0}
01 的出现)
上下约个分就发现是对的,我们称其为“排列”,记为
A
n
m
=
n
!
(
n
−
m
)
!
\text{A}_{n}^{m}=\frac{n!}{(n-m)!}
Anm=(n−m)!n!
其中
m
=
n
m=n
m=n 时答案为
n
!
n!
n!,即
n
n
n 个数的全排列个数。
考虑
n
n
n 个不同数中选
m
m
m 个组成一个集合一共有多少种方法,首先依然像排列一样考虑每个位置有几种选法,得
n
!
(
n
−
m
)
!
\frac{n!}{(n-m)!}
(n−m)!n!
此时因为集合有无序性,考虑重复的集合。因为现在是把集合当做排列来考虑,也就是说每种选法选了一个全排列,也就是
m
!
m!
m! 种,因此最终得到方法数为
n
!
(
n
−
m
)
!
m
!
\frac{n!}{(n-m)!\ m!}
(n−m)! m!n!
记为
C
n
m
=
C
(
n
,
m
)
=
(
n
m
)
=
n
!
(
n
−
m
)
!
m
!
\text{C}_{n}^m=\text{C}(n,m)=\binom{n}{m}=\frac{n!}{(n-m)!\ m!}
Cnm=C(n,m)=(mn)=(n−m)! m!n!
回到这道题,
k
k
k 个不同位置可以看做将序列分成了
k
+
1
k+1
k+1 段颜色相同的序列,考虑隔板法,也就是在
n
−
1
n-1
n−1 个位置里放
k
k
k 块板,共
(
n
−
1
k
)
\binom{n-1}{k}
(kn−1)
种方法。接下来考虑每块的颜色,发现可以重复,但是要保证相邻块的颜色不同,第一块显然可以选
m
m
m 种,第二块和第一块不同,于是为
m
−
1
m-1
m−1 种,以此类推后面均为
m
−
1
m-1
m−1 种。整个序列共
k
+
1
k+1
k+1 块,所以答案为
(
n
−
1
k
)
×
m
×
(
m
−
1
)
k
\binom{n-1}{k}\times m\times (m-1)^k
(kn−1)×m×(m−1)k