忘光了,所以复习【GRU】

群论

基本

代数系统:非空集 G 以及一堆二元运算组成一个代数系统,表示为 (G,,),其中后面表示每个运算的符号。

群:代数系统 (G,)(称作乘法),满足以下性质则称为群(群公理):

  • 封闭性:对于任意 a,b(a,bG),有 abG
  • 结合律:对于任意 a,b,c(a,b,cG),有 (ab)c=a(bc)
  • 存在幺元:存在单位 eG,使得对于任意 aG,有 ea=ae=ae 被称作单位元(幺元)。
  • 存在逆元:对于任意 aG,都存在一个 b 使得 ab=ba=e,则 b=a1ba 的逆元。

有限群/无限群:有有限/无限个元素的群,定义一个有限群的阶为 G 的大小,记作 |G|

交换群:带交换律的(对于任意 a,b(a,bG),有 ab=ba)。

半群:若 (G,) 满足封闭性和结合律,则称其为半群。

交换半群:带交换律的半群。

幺半群:存在单位元的半群。

子群:顾名思义,若两个群 (G,),(H,),满足 HG,那么 HG 的一个子群。

生成子群:若 (G,) 的一个子集 S,满足 (G,) 所有包含 S 的子群的交 H 还是群,那么称 HS 的生成子群,可以记作 SSS 的生成集 。

环:代数系统 (G,+,)(称作乘法、加法),满足以下性质则称为环:

  • (G,+) 是一个交换群(环的加法群)。

  • (G,) 是一个半群(环的乘法半群)。

  • 关于 +分配律:对于任意 a,b,cG,有 a(b+c)=ab+ac

  • 存在零元:零元即为 (G,+) 的幺元。

交换环:带交换律的环。

幺环:若 (G,) 是幺半群,那么, (G,+,)为幺环,(G,+,) 幺元为 (G,) 的幺元。

陪集:若 (H,) 是群 (G,) 的一个子群,并且 aG,称 aH={ah|hH}H 的左陪集,Ha={ha|hH}H 的右陪集。

与陪集相关的一些性质(只考虑左陪集,右陪集类似):

  1. |H|=|aH|

  2. aH=HaH

    • aH=HaH :因为单位元,所以 aaH 所以 aH

    • aHaH=H:根据封闭性,aH 中所有元素在 H 中出现,又因为 性质 1|H|=|aH| ,所以 aH=H

  3. aH=bHab1H

    • aH=bH 转化为 ab1H=H
  4. aHbHaH=bH

    • caHbH,于是 t,uH,at=bu=c,所以 ab1=ut1H

商群:对于群 (G,) 及其正规子群 (H,) ,商群 G/H={gH|gG}​。

拉格朗日定理|H|[G:H]=|G|[G:H]GH 不同的左陪集数量,即 |G/H|)。

  • 根据陪集性质 4:本质不同陪集必定无交。

共轭:对于 g,a,bG ,有 b=gag1,那么 a,b 共轭。

:群 (G,)a(aG) 的阶,是最小的正整数 k 使得 ak=e 。对于有限群阶一定存在。

与阶相关的性质:

  • 群中任意一个元素的阶,一定整除群的阶。
  • a,bGa,b 的阶分别为 u,v ,且 gcd(u,v)=1,那么 asbt=e 当且仅当 as=e,bt=e
  • a,bGa,b 的阶分别为 u,v ,那么定存在元素 c 使得 c 的阶 w 满足 w=lcm(u,v)

置换

置换是有限集合到自己的双射 S={a1,,an} 表示为:

f=(a1,...,anap1,apn)

p 是一个排列,可以理解为一次映射,不难发现,S 上的不同置换有 n! 个。

置换乘法:两个置换的乘法即为两次映射。

不难发现,对于 S 上的所有置换关于置换乘法满足封闭性、结合律、有单位元(恒等置换,即每个元素映射成它自己)、有逆元(交换置换表示中的上下两行),因此构成一个群。这个群的任意一个 子群 即称为 置换群

轨道 - 稳定子定理

对于集合 S 和置换群 (G,),以及 xS

轨道:定义为 G(x)={g(x)|gG},简单的说就是 G 中所有元素作用在 x 上得到的集合。

稳定子:定义为 Gx={g|gG,g(x)=x}, 简单的说就是 G 中作用在 x 上使 x 不变的元素的集合。

轨道 - 稳定子定理

对于任意 xS|Gx||G(x)|=|G|

证明:

  • 引理一:GxG 的子群。
    • 封闭性:对于 f,gGf(x)=g(x)=x,所以 (fg)(x)=x,根据 Gx 定义可知,有封闭性。
    • 结合律:G 满足,所以 Gx 更满足。
    • 存在单位元:有恒等置换做单位元,且满足 e(x)=x
    • 存在逆元:设 gGx(gg1)(x)=e(x)=x ,根据置换,不难发现 g1(x)=x
  • 引理二:[G:Gx]=|G(x)|
    • 考虑 g(x)gGx 一一对应。
    • f(x)=g(x),则有 fg1=x=e(x)Gx,根据陪集性质 fGx=gGx
    • 所以我们证明了:当 g(x) 相同时 gGx 相同。

根据拉格朗日定理:|Gx|[G:Gx]=|G|

得到 |Gx||G(x)|=|G|

Burnside 定理

(G,) 为置换群,X 为一个集合,若存在 f(x)=y(fG,x,yX),则定义 x,y 属于一个等价类。

X/G 表示 G 作用下 X 的所有等价类集合,Xg 表示 g 作用下不变的 X 中元素的集合(类似于轨道 - 稳定子定理)。

|X/G|=1|G|gG|Xg|

证明:

gG|Xg|=xX|Gx|(转换枚举贡献的方式)=xX|G||G(x)|(轨道 - 稳定子定理)=|G|xX1|G(x)|=|G|Y(X/G)xY1|G(x)|(先枚举每个等价类,再依次枚举等价类中的元素)=|G|Y(X/G)xY1|Y|(每个等价类中元素的轨道均相同,为等价类集合大小)=|G||X/G|

Pólya 定理

m 中颜色给 n 个对象染色在 n 阶置换群 G 意义下的方案数为 1|G|gGmc(g)c(g) 表示置换 g 的置换环个数。

证明:考虑每个置换环都只能用同一种颜色。

例题

Luogu4980 【模板】Pólya 定理

  • 题面:

    给定一个 n 个点,n 条边的环,有 n 种颜色,给每个顶点染色,问有多少种本质不同的染色方案,答案对 109+7 取模。本质不同定义为:不能通过旋转与别的染色方案相同。

    n109,T103

  • 解法:

    考虑本题中置换一共 n 个: {i,,n,1,,i1}(1in)

    每个置换的置换环个数为 gcd(n,i)

    所以:

    ans=1ni=1nngcd(n,i)=1nd|nndi=1n[gcd(n,i)=1]=1nd|nndi=1nd[gcd(nd,i)=1]=1nd|nndφ(nd)

    复杂度 O(Td|nd)=O(Tn0.75)

    感觉有点悬考虑一开始的时候直接对 n 分解质因数,然后通过 dfs 边枚举因数的同时可以求 φ

    复杂度 O(T(n+ω(n)log(n))),可过。

    不过题解区很多好像都是上面暴力过的。

UVa10601 Cubes

  • 题面:

    给定 12 根等长,着色的木棒。问能构成的本质不同的正方体数量。颜色最多有 6 种。

    正方体 AB 本质不同,当 A 不能通过旋转得到 B

  • 解法:

    颜色数量有限制,考虑使用 Burnside。

    转正方形,考虑先手玩把所有置换给玩出来。

    然后就可以 6 维 dp,不过上天了。

    然后就是感觉比较牛的东西:这些置换中的一部分是同构的。

    准确的说:6 面,每面 4 种共 24 种置换可以分成 1(1)123(2)68(3)46(4)3 ,以及 6(1)2(5)2

    前面四种都可以组合数搞,最后一种枚举 21 也可以组合数。

Luogu4128 [SHOI2006] 有色图

  • 题面:

    有色图是一张每条边都被染成了一种颜色的无向完全图。不同定义为不能经过某种顶点编号的重排,使得两张图对应边的颜色相同。

    求所有顶点数为 n,颜色种类不超过 m 的不同有色图的方案数,模 p

    1n531m1000n<p109

  • 解法:

    给每条边染色,但是同构的定义是点的重排,所以考虑对于共 n! 个排列,计算贡献。

    对于其中一个排列把它拆成若干个置换环,设环长依次为 a1,a2,,ak,边等价类有以下两种:

    1. 一个置换环内:同样距离的两对点所对应的边,属于同一个等价类(考虑在环上依次为 1,2,3,4,那么边 (1,3) 在环上转一次变成 (2,4),属于一个等价类),若环长为奇数不同长度有 n12 种,偶数不同长度有 n2 种。
    2. 不在一个置换环内:这两点出现的周期为 lcm(ai,aj),所以不同等价类个数为 aiajlcm(aiaj)

    所以一个排列的等价类个数为 i=1na2+i=2nj=1i1gcd(ai,aj)

    然后就得到一个 O(n!n2logn) 的优秀做法。。。。。。

    考虑这个 53 是什么:整数分拆。

    考虑枚举 a1a2ak,i=1kai=n ,然后计算有多少个排列是这样的。

    1n 每个点分在每个循环中的方案数是 n!ai! ,一个环上的方案数是一个圆排列,即 (ai1)!

    然后相同大小的环会导致算重,设大小为 l 的环有 sl 个,除以 sl! 即可。

    ans=1n!an!ai!(ai1)!l1sl!mc(c=i=1na2+i=2nj=1i1gcd(ai,aj))=a1aisl!mc

    复杂度:O(能过)

posted @   TOBapNw-cjn  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示