群论(Burnside引理、Polya定理)
是谁刚逃离期末考数学的魔爪,就来学这个抽象代数,确实是很抽象了(
我摆了,更多细节证明看dalao blog吧
基本概念
群
群的定义
设
-
封闭性:
-
结合律:
且 -
单位元:有且仅有唯一的
-
逆元:
. 称 b 为 a 的逆元,记作
群的性质
消去律,
群的例子
整数的加法群
衍生概念
-
阿贝尔(Abel)群:即交换群,满足交换律的群
-
半群:集合和其上的运算构成的代数结构
,满足封闭性和结合律,如 -
幺半群:存在单位元的半群,如
-
有限群:元素个数有限的群。其元素个数称为有限群的阶,记为
-
对称群:集合G上的所有置换,在映射的复合下构成群
。单位元是恒等变换,逆元是逆映射(双射必存在逆映射)。如果集合G有限,大小为n,也记作 ,称为n次对称群。
ps.置换:一个集合G到自身的双射(一一映射)称为G的一个置换。人话就是交换元素顺序。
子群
子群的定义:对于群
- 子群判别法: 群 G 的子集 H 是子群,当且仅当
都有 。
生成子群:对于群 G 中的子集 S,从 S 中的元素出发,重复进行乘法和取逆运算有限次,能得到的所有结果的集合称为 G 的一个子群。即由子集 S 生成的子群。
对于群 G 的一个非空子集 S ,若 H 是包含 S 的 G 的子群中最小的,则子群 H 称为由子集 S 生成的子群,并记作
循环群:仅由一个元素生成的群。假设这个元素为x,那么也可以记作
另外,所有循环群都是阿贝尔群。群内给定元素的阶就是该元素生成的循环子群的阶。
陪集:对于群 G 的一个子群 H ,对于
(子群陪集的定义可以类比函数的陪集去想)
陪集的性质(以右陪集为例):
H 为群 G 的一个子群。
拉格朗日定理:(根据以上性质推得)
有限群的阶必然是子群的阶的整数倍。
具体的,对于有限群
其中
好的其实我才不会告诉你,之前那些全是废话,看不懂没关系。以下正文开始。
置换群
有限集合到自身的双射称为置换,人话就是重新排列集合的元素
其实会做题就行,那些抽象概念没用
小结论是:一个置换,可以被分解为不相交的若干个轮换(轮换就是按顺序每次滚动1)
[poj2369]Permutations
置换群经典手法:我们把每次置换的初始元素到目标元素连边,可以发现,每个元素的出度入度均为1.那么实际上我们就可以把这个置换划分成若干个环。每条边都代表一次置换。
那么如果需要求最小置换次数,使得原始集合复原,其实就是这些环长的最小公倍数。
[USACO07FEB] Cow Sorting G
显然要求每个奶牛移到正位上的的最小交换次数
其实仔细观察一下,还是按照那个置换始末连边的处理手法,就是交换会成环!!然后贡献就是环上点贡献之和*2-相邻两元素之和的最大值。
[POI2009] SLO-Elephants
完全同上
[HNOI2010] 物品调度
这题重点考观察形式+并查集吧……
考虑题目中给出的
x增大即为环内元素挨个向后取,y增大即为不同起点的环间移动。
注意这个环内和环间要开两个并查集维护!
首先不能用set,因为环内两相邻元素的差是d,而一共有
最后的求步数就是套路。
[poj3128]Leonardo's Notebook
莫名其妙找规律题,怎么说,画上十几个图规律也就找到了。
还是考虑找置换的环。而这次,一条边相当于两次置换,可以假设边上有一个中转点。
首先,奇环是可以直接将每条边上的中转点取成对角上的字母,能够自我循环满足两次排列。对答案没有任何影响。
原置换中的偶环循环两次一定会被分割成两个更小的环,也就是说,偶环一定是成对出现的。(奇环已经被讨论掉了)
判断偶环即可。
Burnside引理
定义
对于每个
这里会有一个轨道-稳定子定理,用于证明 Burnside引理(但算法竞赛主要是会用嘛,证明不太重要,主要是我不会)
若
定义
又,
有 Burnside引理 :
特别关注的是,该引理在
抽象式子无法理解没有关系,看后面例题中如何应用。
Polya定理
其实就是 Burnside引理 的一种特殊情况。
其中
证明只需要考虑
此时必须要求每个映射都合法,即 Polya定理 只在
有人说,Burnside引理 和 Polya定理 实际上就是更改了枚举计算对象。故,使用情景下关键是考虑题目限制条件以及
例题
[HNOI2008]Cards
题目中“洗牌法”完美满足置换群的性质,但记得加上一个恒等置换。注意到此题映射不完整,要满足红、蓝、绿的个数限制,所以只能用 Burnside引理 。
再次理解这个式子的形式。G是我们洗牌的置换集合,X可以简单理解为牌对颜色的映射。那么这里式子的含义就是本质不同的染色方案数等于每个变换中不动点个数的算数平均值。
需要计算不动点个数。
先将置换分解成轮换,那么每个轮换内的点都必须是一个颜色。将轮换当成物品,三个颜色当成背包,这就是经典的背包问题,
[JZOJ4800] 周末晚会
开始始终都没想到置换的表示,一直以为普通容斥就能做,再加上有k个女生不能相邻这层限制。
但是圆桌,本质不同,本身就给我们提示了一个旋转的置换。而且还是满足群的限制的,并且不动点就是要求旋转
由于k个女生不能相邻的限制,导致产生了
dp细节很多。我们只需要枚举计算d个人之内的dp状态就可以。但格外注意的是“拼接”!拼接时不能超过k个女生在一起,那么不妨设dp状态就是开头结尾都是男生的状态。用前缀和优化可以做到O(n),不优化也行。
最后考虑拼接处的女生个数,逐一枚举,还需要用段长d减去dp内已经算过的长度!然后去插空。
[模板] Polya 定理
题目给的环的置换很明显,且不动点的数量不可求。用Polya定理,直接列出。
观察式子,发现gcd形式,可以直接拆!
化简出来是
然后我死活没看出来后面一坨是欧拉函数。 继续化简
发现规律:使用 Polya定理 的题目一般都是直接拆式子!
[poj2888]Magic Bracelet
注意到n的范围很大,但是还有限制条件,只能用 Burnside引理。
又是经典的环形置换。先把关于gcd的dp式子写出来,dp[i][j]表示以j结尾,长度为i的方案数。
这时候好好读题的同学们都发现了(因为我一开始没看见),m的范围很小。考虑直接O(m)枚举开头元素k,最后dp到gcd+1,直接取以k结尾的方案数,就能解决珠子不相邻的问题。然后我们惊讶的发现,这个dp转移式子可以写成矩阵快速幂的形式!a[i][j]为0/1表示i能否与j相邻。
对于整体的式子,发现这个dp只和gcd有关,直接考虑用上一题的方法化简。
最终复杂度
[HNOI2009]图的同构/[SHOI2006] 有色图
实际上是同一道题,前者是后者m=2的情况。直接考虑后者。
这里为了方便表述,把表示颜色个数的 m 更改为 col。
先找映射,很奇怪的是,“点,边,边的颜色”,是三个东西找关系。没想到就是直接考虑从点到边的颜色的映射。
发现难以直接理解每个置换的轮换数量。不妨从 Burnside引理 出发,考虑不动点。(最终推出来其实就是 Polya定理)画图找规律,发现点对边的影响跟边的端点是否在同一轮换有关。分类讨论。
1.在一个轮换。画图可知,对于一个长
2.不在一个轮换。设两边轮换长度分别为
设共
然后我们惊讶地发现,这个置换群的大小,就是点的排列数,是
考虑实际上这个式子只和轮换的长度集合
考虑如何计算能涵盖的置换数。划分
最终的式子为
在
本文作者:YYYmoon
本文链接:https://www.cnblogs.com/YYYmoon/p/18675592
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步