版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DT_Kang/article/details/82286144
1
一张圆桌周围
n
n
把椅子,留下
k
k
把,且任意两个椅子不相邻。求本质不同的方案数。如果对于两个方案,其中的一个不能通过旋转或翻转得到另一个,那么称他们本质不同。
根据 burnside 引理,等价类数量等于置换不动点数量的平均数。我们枚举一个旋转的置换,例如旋转了
x
x
步,那么在这个置换下就有
g c d ( x , n )
g
c
d
(
x
,
n
)
个循环节,长度都为
d = n g c d ( x , n )
d
=
n
g
c
d
(
x
,
n
)
。每个循环节状态应该相同。因此如果
d | k
d
|
k
,那么我们就要在所有循环节中选出
n u m = k d
n
u
m
=
k
d
个,并且不相邻。发现如果相邻的循环节之间连边,那么这张图还是一个环。我们先随便找个地方断开,变成序列上不相邻,最后减去同时选首尾的。因此方案数为
( g c d ( x , n ) − n u m + 1 n u m ) − ( g c d ( x , n ) − n u m + 3 n u m − 2 ) 。
(
g
c
d
(
x
,
n
)
−
n
u
m
+
1
n
u
m
)
−
(
g
c
d
(
x
,
n
)
−
n
u
m
+
3
n
u
m
−
2
)
。
序列上不相邻的做法类似隔板法,先拿出
n u m − 1
n
u
m
−
1
个球,最后插回去。
对于环,需要讨论
k
k
和
n
n
的奇偶。
2
有
m
m
种颜色的珠子。有三种操作:旋转、翻转、转换操作.。转换操作会将所有珠子的颜色编号加1,。特别地, 对于所有颜色编号为
m
m
的珠子, 它们的颜色编号会变为1。 如果一个项链A在经过任意的旋转, 翻转, 颜色转换之后变为了项链 B,则称 A 和 B 是等价的。 求有多少个本质不同的项链。
又加了转换操作。一个想法是不改变置换群,统计答案的时候考虑转换。另一种想法是扩大置换群。发现第二种比较靠谱。我们把置换群群扩大到
2 ∗ n ∗ m
2
∗
n
∗
m
个。例如我们旋转了
i
i
步,转换了
d
d
次,首先要满足同一循环节前一个颜色比后一个小
d
d
,并且
d ⋅ n g c d ( i , n ) = 0 ( m o d m )
d
·
n
g
c
d
(
i
,
n
)
=
0
(
m
o
d
m
)
,因为转一圈要变回自己的颜色。我们想要计算一下在一个
i
i
下有多少合法的
d
d
。令
z = n g c d ( i , n )
z
=
n
g
c
d
(
i
,
n
)
,化简一下式子:
d ⋅ n z = 0 ( m o d m ) d z = k m d = m ( m , z ) ⋅ k z / ( m , z ) d = 0 ( m o d m ( m , z ) )
d
·
n
z
=
0
(
m
o
d
m
)
d
z
=
k
m
d
=
m
(
m
,
z
)
·
k
z
/
(
m
,
z
)
d
=
0
(
m
o
d
m
(
m
,
z
)
)
由于
d ∈ [ 1 , m ]
d
∈
[
1
,
m
]
,因此在当前
i
i
下有
( m , z )
(
m
,
z
)
个合法的
d
d
。所以我们的总方案数长这样:
= = = ∑ i = 1 n m ( i , n ) ⋅ ( m , n ( n , i ) ) ∑ d | n m d ( m , n d ) ∑ j = 1 n [ ( j , n ) == d ] ∑ d | n m d ( m , n d ) ∑ j = 1 n / d [ ( j , n d ) == 1 ] ∑ d | n m d ( m , n d ) φ ( n d )
∑
i
=
1
n
m
(
i
,
n
)
·
(
m
,
n
(
n
,
i
)
)
=
∑
d
|
n
m
d
(
m
,
n
d
)
∑
j
=
1
n
[
(
j
,
n
)
==
d
]
=
∑
d
|
n
m
d
(
m
,
n
d
)
∑
j
=
1
n
/
d
[
(
j
,
n
d
)
==
1
]
=
∑
d
|
n
m
d
(
m
,
n
d
)
φ
(
n
d
)
好像还要写一个 Pollard_Rho…