从小学数学到 whx 的自选题

最近真的是发生了很多事呢……心态也稍微有点变化了。不过不能向生活认输呢……因此也不能太丧气呢。今天是很重要的日子,所以写点东西纪念一下呢。


最近开始慌慌张张的赶作业了,作为一个小学生当然先要去做武爷爷的题目啦!于是我直接点开了武爷爷题目的题解,发现自己居然每个字都认识!为了自己也能理解它们连起来的意思,窝进行了一些代数补习。以下就是小学生 fsf 的课外补习记录!(当然会代数的各位就不用看了啦OTZ,武爷爷的题解很清楚的)

因为还在补习中,所以可能会做出改动,哪里脑残了的话有劳指正了!


首先复习一下基本概念:


表示一个拥有满足封闭性、结合律、有单位元、有逆元的二元运算的代数结构,群中元素的个数成为群的

S_n 表示 n 元对称群(包含所有长度为 n 的置换,运算是置换的复合)

一个同态 \varphiG\rightarrow G' 的映射,使得 \forall a,b\in G,\varphi(a)\varphi(b)=\varphi(ab)

同态 \varphi记作 \ker\varphi\ker\varphi=\{a\in G|\varphi(a)=1\} (即能够映射到 G' 单位元的元素)


对于 G 的子群 Ha\in G ,子集 aH=\{ah|h\in H\} 称为左陪集,类似可以定义右陪集。

GH 的左陪集是关于同余关系(左同余) a\equiv b,\text{iff }\exists h\in H,b=ah 的等价类。

GH 的所有陪集的阶相同,而这些陪集又是对 G 的一个划分,因此 |G|=k|H| ,其中 k 是陪集个数。

GH 的所有陪集记为 G/H


如果子群 N 中的任意元素 aG 中的任意元素 g ,都满足 gag^{-1}\in N ,则称 NG正规子群

一个同态的核是正规子群。

正规子群的所有陪集 G/N 形成一个群,称为商群

核的陪集 G/N 与同态的像 \mathrm{im}\ \varphi 同构。


一个有结合律 (g\cdot h)\cdot x=g\cdot (h\cdot x) 和单位元 e\in G 的二元函数 G\times X\rightarrow X 称为群 G 在集合 X 上的作用。在作用中 orbit_x=\{g\cdot x|g\in G\} 称作 x轨道。只有一个轨道的群作用称为可迁的。


题目:Universal Online Judge


我们的目标是求出给定群 GS_n 的单同态数量。我们可以对 \ker\varphi 容斥,单同态即要求 \ker\varphi=\{1\} ,我们可以枚举每个 G 的正规子群 H 进行容斥,这样我们只需要统计所有 G/HS_n 的同态个数即可。

令同态为 \varphi ,我们枚举 \mathrm{im}\ \varphi 作用到 1\ldots n 上时 1 所在的轨道大小 k ,问题就转化成了求 GS_k 的同态个数,令其为 c_k ,求出后可以 DP 出答案 f_n=\sum_{k=1}^n \binom{n-1}{k-1} f_{n-k} c_k


我们首先考虑简单的情形,先看 G\rightarrow S_{|G|} 的同态 \varphi

首先既然是可迁的,那么 \mathrm{im}\ \varphi 中的置换的 p[1] 是互不相同的。

我们令 D_i=\varphi(i)[1] ,由 \varphi(a)\varphi(b)=\varphi(ab) 可得 \varphi(a)[\varphi(b)[1]]=\varphi(ab)[1] ,即 \varphi(a)[D_b]=D_{ab}

D 必须满足 D_1=1D_1\neq 1 的话之后推出的 \varphi 会与 D 的定义矛盾)

于是我们发现由 D 可以构造出 \varphi ,我们只需验证所有满足 D_1=1D 构造出的 \varphi 都是单同态即可得到一个标号 D 到单同态 \varphi 的双射,也即验证 \varphi(a)\varphi(b)[k]=\varphi(ab)[k] ,找到 D_c=k ,则可得 \varphi(a)\varphi(b)[D_c]=\varphi(a)[D_{bc}]=D_{abc}=\varphi(ab)[D_c]

通过这个双射可以得到 G\rightarrow S_{|G|} 的单同态有 (|G|-1)! 种。


接下来我们考虑 G\rightarrow S_k 的同态,我们像之前一样尝试标号,枚举 p[1]=1 的子群 H ,我们可以验证 H 的陪集划分出来的等价类中,每个陪集内部的标号相同(依然把单位元所在的陪集映射到单位元)。即 \varphi(a)[1]=\varphi(bh)[1]=\varphi(b)[\varphi(h)[1]]=\varphi(b)[1] ,其他的验证可以类似上面得到。由于是可迁的标号依然互不相同。根据陪集的性质我们有 |G|=k|H| ,因此 G\rightarrow S_k 的同态个数有 C_G(|G|/k)(k-1)! 个。其中 C_G(k)G 的大小为 k 的子群个数。


由于 G 的子群和正规子群不会很多,因此按照上面暴力计算就可以了。

发布于 2017-12-14

文章被以下专栏收录