专栏文章
群论
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipjfe4i
- 此快照首次捕获于
- 2025/12/03 12:59 3 个月前
- 此快照最后确认于
- 2025/12/03 12:59 3 个月前
群论
群
群的定义
若集合 和集合 上的运算 构成的代数结构 满足以下性质:
1.封闭性: 。
2.结合律: 。
3.单位元: 。
4.逆元:,称 为 的逆元,记为 。
则称 为一个群。
群的性质
1.一个群的单位元唯一。
证明:
假设存在两个单位元 ,有 。
证明:
假设存在两个单位元 ,有 。
2.若 ,有 。
证明:
。
证明:
。
3.一个群中 的逆元唯一。
证明:
假设 有两个逆元 ,有 。
证明:
假设 有两个逆元 ,有 。
4.逆元有消去律存在。即 。
证明:
方程两边同时乘逆元。
证明:
方程两边同时乘逆元。
子群
子群:对于一个群 ,若 ,且 也是一个群,那么称 是 的子群,记为 。
生成子群:对于一个群 的一个非空子集 ,如果 是包含 的 的子群中最小的,则子群 称为由子集 生成的子群,记为。当 ,也写作 。
循环群:可由一个元素生成的群。
阶
群 的阶等于它的元素个数,记作 。
群 中元素 的阶等于最小的正整数 ,使得 ,有限群中元素的阶一定存在 。
陪集
陪集:对于一个群 的一个子群 。
如果 ,对于 ,定义 的一个左陪集为 , 的一个右陪集为 。
陪集的性质
若 ,有以下性质。
1. ,有 。
证明:
若,则 。即对于不同的 , 互不相同 。
证明:
若,则 。即对于不同的 , 互不相同 。
2. ,有 。
证明:
因为 是群,所以 ,所以 即 。
证明:
因为 是群,所以 ,所以 即 。
3. 。
证明:
从左往右,由性质2得 ,可得 。
从右往左,由群的封闭性得 ,又因为 ,可得 。
证明:
从左往右,由性质2得 ,可得 。
从右往左,由群的封闭性得 ,又因为 ,可得 。
4. 。
证明:
从左往右,可得 ,根据性质3有 。
从右往左,根据性质三有 ,可得 。
证明:
从左往右,可得 ,根据性质3有 。
从右往左,根据性质三有 ,可得 。
5.若 ,有 。
证明:若 ,有 ,可得 ,又因为 ,所以 ,根据性质4有 。
证明:若 ,有 ,可得 ,又因为 ,所以 ,根据性质4有 。
6. 的所有右陪集的并集为 。
由于封闭性,不可能取到 之外的元素。
由于 ,取遍 的所有元素就可以保证 的所有元素都被取到。
拉格朗日定理
若 ,那么 。
其中 表示 中 不同陪集的数量。
证明:
的所有陪集大小相等且互不相交。
其中 表示 中 不同陪集的数量。
证明:
的所有陪集大小相等且互不相交。
群 中元素 的阶整除群 的阶。
证明:构造一个 的子群 , 由拉格朗日定理可得 整除 。
证明:构造一个 的子群 , 由拉格朗日定理可得 整除 。
置换
置换的定义
有限集合到自身的双射)称为置换。不可重集合 上的置换可以表示为 ,可省略表示为 ,表示把第 个元素映射到位置 。
置换 作用于状态 ,写作 。
置换的乘法
定义 表示先进行 ,再进行 。
循环
如果一个置换形如 ,则称其为一个循环。
如果两个循环不包含相同元素,则称它们是不相交的。
任何置换都可以分解为若干个不相交循环的置换的乘积。
置换群
元素个数为 的所有排列的集合 与置换乘法组成的一个群 。
其子群称为置换群。
其中的单位元又叫做恒等置换 。
等价类
若一个状态可以通过置换群内的某个置换到达另一个状态,则称它们是同一个等价类,即本质相同。
不动点
若 ,则称 为 的一个不动点。
轨道-稳定子定理
置换群 和集合 ,对于每个 。
定义 为 的轨道。
为 的稳定子。
定义 为 的轨道。
为 的稳定子。
轨道-稳定子定理:
证明:
首先, 是 的一个子群。
1.封闭性:因为 ,有 ,即 。
2.结合律:置换乘法本身始终有结合律。
3.单位元: 。
4.逆元: ,所以 。
根据拉格朗日定理,有: 。
其中 表示 在 中本质不同的陪集数量。
那么现在只需要证明 ,尝试在 的陪集和 间建立双射关系。
1.若 ,则有 ,即 ,由陪集的性质四,可得 ,即轨道相同则陪集相同。
2.若 ,则 , 所以 ,即 ,即陪集相同则轨道相同。
所以成功建立起了双射关系,命题得证。
Burnside引理
对于作用于集合 的群 。定义 为 在 的作用下等价类的集合。
Burnside 引理:
其中 ,即集合 在 作用下的不动点数量。
证明:
| X / G | &= \sum\limits_{Y \in X / G} 1\\
&=\sum\limits_{Y \in X / G} \sum\limits_{x \in Y} \dfrac{1}{| Y |}\\
&=\sum\limits_{Y \in X / G} \sum\limits_{x \in Y} \dfrac{1}{| G(x) |}\\
&=\sum\limits_{x \in X}\dfrac{1}{|G(x)|}
\end{aligned}$$
根据轨道-稳定子定理,有 $| G | = | G^x | | G(x) |$ ,所以
$$\begin{aligned}
| X / G | &= \sum\limits_{x \in X}\dfrac{G^x}{|G|}\\
&= \dfrac{1}{|G|}\sum\limits_{x \in X}|G^x|\\
&=\dfrac{1}{| G |} \displaystyle\sum\limits_{g \in G}| X^g | \\
\end{aligned}$$
得证。
## Polya定理
Polya 定理可以解决一般的染色计数问题。
Polya 定理: $ | X / G | = \dfrac{1}{| G |} \displaystyle\sum\limits_{g \in G}m^{c(g)} $
其中 $c(g)$ 表示置换 $g$ 拆出的不相交循环数量,$m$ 表示颜色数量。
证明:在 Burnside 引理中, $g$ 的不动点满足 $g$ 拆出的每个循环内的元素都相同,所以 $|X^g| = m^{c(g)}$ 。
## 例题
### P4980 【模板】Pólya 定理
定义 $g_i$ 为置换:旋转 $i$ 个点。
则答案即为环的所有不同颜色状态 $X$ ,在群 $G = \{g_0,g_1,\dots\,g_{n-1}\}$ 作用下的等价类数量。
由 Burnside 引理得到:$ ans = \dfrac{1}{n} \displaystyle\sum\limits_{i=1}^n | X^{g_i} | $ 。
考虑置换 $g_i$ 作用于状态 $X$ 的不动点数量,可以将其拆成 $\gcd(i,n)$ 个不相交的循环,对于每个不动点,显然每个不相交的循环内颜色都相同,所以 $|X^{g_i}| = n^{\gcd(i,n)}$ 。
使用莫比乌斯反演化简原式。
$$\begin{aligned}
ans &= \dfrac{1}{n} \sum\limits_{i=1}^n n^{\gcd(i,n)} \\
&= \dfrac{1}{n} \sum\limits_{i=1}^n \sum\limits_{d=1}^n n^d [\gcd(i,n)==d] \\
&= \dfrac{1}{n} \sum\limits_{d|n} n^d \sum\limits_{i=1}^n [\gcd(i,n)==d] \\
&= \dfrac{1}{n} \sum\limits_{d|n} n^d \sum\limits_{i=1}^{\frac{n}{d}} [\gcd(i,\frac{n}{d})==1] \\
&= \dfrac{1}{n} \sum\limits_{d|n} n^d \varphi(\frac{n}{d}) \\
\end{aligned}$$
暴力计算欧拉函数时间复杂度 $O(Td(n)\sqrt(n))$。但可以对 $n$ 进行质因数分解,在枚举质因数的时候$O(1)$计算$\varphi$,时间复杂度 $O(T\sqrt{n})$。
### P1446 [HNOI2008] Cards
由于题目保证多次洗牌可以被单次洗牌代替,且对每种洗牌法,都存在一种洗牌法使得能回到原状态。这个条件等价于给出的 $m$ 个洗牌法构成的置换集合可以涵盖所有洗牌法,且满足逆元。
我们在 $m$ 种洗牌法的基础上加入单位置换,就构成了置换群 $G$,可以使用 Burnside 引理求解。
由于数据范围较小,可以 dp 计算出每种洗牌方式作用于 $X$ 的不动点个数,即可得出答案,时间复杂度 $O(nm^4)$ 。
### P4727 [HNOI2009] 图的同构计数
将图的顶点重新标号等价于对点集置换,所有标号方式构成了置换群 $G$,可以使用 Burnside 引理求解。
考虑求解 $g$ 作用于 $X$ 的不动点个数,对于 $g$ 的不动点,观察发现有些边要么同时存在,要么同时不存在,我们称这些边为一个等价类。
设 $k$ 为置换 $g$ 作用下边的等价类个数,那么 $X$ 中就有 $2^k$ 个不动点,即 $|X^g|=2^k$ 。
接下来要求置换 $g$ 作用下边的等价类个数,首先将 $g$ 拆成若个个不相交的置换循环,长度分别为 $b_1,b_2,……,b_m$ 。
对于同一循环内的边,设循环长度为 $b$ ,不难发现两条边是等价类当且仅当它们长度相同,长度为 $b$ 的循环贡献为 $\lfloor\frac{b}{2}\rfloor$ ,这一类边总的贡献为 $\sum\limits_{i=1}^m \left\lfloor\frac{b_i}{2} \right\rfloor $ 。
对于连接两个循环的边,设这两个循环的长度分别为 $b_1,b_2$ ,那么每条边经过 $\operatorname{lcm}(b_1,b_2)$ 次置换后会回归原位,所以每个等价类大小为 $\operatorname{lcm}(b_1,b_2)$ ,总的等价类个数为 $\frac{b_1b_2}{\operatorname{lcm}(b_1,b_2) )} = \gcd(b_1,b_2)$ ,总的贡献为 $\sum\limits_{i=1}^m \sum\limits_{j=1}^{i-1} \gcd(b_i,b_j)$。
所以边的等价类个数就等于两种情况之和:
k=\sum\limits_{i=1}^m \left\lfloor \frac{b_i}{2} \right\rfloor + \sum\limits_{i=1}^m \sum\limits_{j=1}^{i-1} \gcd(b_i,b_j) \
由于 $|G| = n !$ ,因此不能枚举每一个置换 $g$ ,需要进行优化。
观察到有许多置换会被重复计算,如果两个置换 $b$ 的集合是相同的,其所产生的贡献也是相等,于是可以枚举 $b$ 的不同集合,即 $n$ 的分拆数代表一类置换。
现在需要计算对于每个拆分,对应置换的数量。首先将 $n$ 个数分为 $m$ 组,第 $i$ 组有 $b_i$ 个数,一共有 $\frac{n!}{\prod (b_i!)}$ 种方案。
接着是循环内部数的分配,其需要构成一个循环,总共有 $\prod (b_i-1)!$ 种方案。
注意到,对于长度相等的循环,它们之间互相交换的话会出现重复计数,设 $c_i$ 表示置换 $g$ 中长度为 $i$ 的循环个数,答案会多算 $c_i!$ 倍,因此答案还要除以 $\prod (c_i!)$ 。
所以我们的到拆分 $b$ 所对应的置换个数为:
\frac{n!}{\prod(b_i)\prod(c_i!)}
用枚举 $b$ 改进之前枚举 $g$ 的算法,可以得到:
|X/G| =\frac{1}{|G|} \sum\limits_{b} \frac{n!}{\prod(b_i)\prod{(c_i!)}}2^k
$|G| = n!$,里外两项抵消,得到最终公式:
ans=\sum\limits_{b} \frac{2^k}{\prod(b_i)\prod{(c_i!)}}
k=\sum\limits_{i=1}^m \left\lfloor \frac{b_i}{2} \right\rfloor + \sum\limits_{i=1}^m \sum\limits_{j=1}^{i-1} \gcd(b_i,b_j) \
时间复杂度可以通过本题。
#### 扩展: P4128 [SHOI2006] 有色图
问题本质与上一题相同,条件改为对于边的等价类,每条边的颜色都一定相同,将 $2^k$ 改为颜色数 $c^k$ 即可。
### P4916 [MtOI2018] 魔力环
本题可以使用 Burnside 引理,定义 $f(x)$ 为拆分出 $x$ 个不相交循环的不动点数量,对于旋转 $i$ 个,可以将其拆分称 $\gcd(i,n)$ 个不相交的循环。
$$\begin{aligned}
ans&=\dfrac{1}{| n |} \sum\limits_{i=1}^n f(\gcd(i,n)) \\
&=\dfrac{1}{| n |} \sum\limits_{d|n}\sum\limits_{i=1}^n f(d) [\gcd(i,n)==d] \\
&=\dfrac{1}{| n |} \sum\limits_{d|n} f(d) \sum\limits_{i=1}^{\frac{n}{d}} [\gcd(i,\frac{n}{d})==1] \\
&=\dfrac{1}{| n |} \sum\limits_{d|n} f(d) \varphi(\frac{n}{d}) \\
\end{aligned}$$
考虑求解 $f(x)$ ,其中 $m=n$ 的情况特判,其余情况循环节间互不影响,可以对 $\frac{n}{x}$ 个循环节单独考虑。
设 $g(n,m)$ 为用 $m$ 个黑球和 $n-m$ 个白球组成长度为 $n$ 的环,且黑球连续段长度不超过 $k$ 的方案数。
$$f(x)=\left[\frac{n}{x} \mid m\right] g\left(x,\frac{m}{\frac{n}{x}}\right)$$
考虑如何求 $g(n,m)$ ,若 $m \le k$ ,则直接返回 $\tbinom{n}{m}$。
否则可以转化为用 $n-m$ 个白球将 $m$ 个黑球分为 $n-m+1$ 组(每组可以为空),且黑球数量不超过 $k$ 个。由于环的性质,还要求第一组和最后一组加起来不超过 $k$ 个,可以枚举第一组和最后一组共放的黑球数量。
$$g(n,m)=\sum\limits_{i=0}^{k} (i+1)s(n-m-1,m-i)$$
其中 $s(n,m)$ 为将 $m$ 个黑球分为 $n$ 组,每组黑球数量不超过 $k$ 个,可以容斥计算:
$$s(n,m)=\sum\limits_{i=0}^{\min(n,\lfloor\frac{m}{k+1}\rfloor)} (-1)^i\tbinom{n}{i}p(n,m-i(k+1))$$
其中 $p(n,m)$ 为将 $m$ 个黑球分为 $n$ 组的方案数,可以组合数学插板法直接计算:
$$p(n,m)=\tbinom{m+n-1}{n-1}$$
时间复杂度为 $O(n+m \log m)$ 。
### P3307 [SDOI2013] 项链
本题首先考虑求解本质不同的珠子数量 $c$ ,可以使用 Burnside 引理解决,分别计算每个置换的不动点方案数。定义 $T(x)$ 为不考虑旋转翻转同构, $x$ 个数最大公约数为 $1$ 的方案。
不动点:$3$ 个数可以任意取,贡献 $T(3)$。
旋转:两种旋转,需要 $3$ 个数相同,贡献 $2 \times T(1)$。
翻转:三种翻转,需要 $2$ 个数相同,贡献 $3 \times T(2) $。
总珠子数量 $c=\frac{T(3) + 3 \times T(2) + 2 \times T(1)}{6}$,其中 $T(1)=1$,尝试计算 $T(3)$。
$$\begin{aligned}
T(3)&=\sum\limits_{i=1}^a \sum\limits_{j=1}^a \sum\limits_{k=1}^a [gcd(i,j,k)==1] \\
&=\sum\limits_{i=1}^a \sum\limits_{j=1}^a \sum\limits_{k=1}^a \sum\limits_{d|gcd(i,j,k)} \mu(d) \\
&=\sum\limits_{d=1}^a \mu(d) \sum\limits_{i=1}^a \sum\limits_{j=1}^a \sum\limits_{k=1}^a [d|i][d|j][d|k] \\
&=\sum\limits_{d=1}^a \mu(d) \left\lfloor \frac{a}{d} \right\rfloor^3 \\
\end{aligned}$$
线性筛预处理后可以使用数论分块在 $O(\sqrt{a})$ 的时间内求解,$T(2)$ 可同理计算。
至此我们成功求出了本质不同的珠子数量,接下来考虑求出本质不同的项链数量,使用 Burnside 引理求解,定义 $f(n)$ 为拆分出 $n$ 个不相交循环的不动点数量。
$$\begin{aligned}
ans &= \dfrac{1}{n} \sum\limits_{i=1}^n f(gcd(i,n)) \\
&= \dfrac{1}{n} \sum\limits_{d|n} f(d) \sum\limits_{i=1}^n [gcd(i,n)=d] \\
&= \dfrac{1}{n} \sum\limits_{d|n} f(d) \sum\limits_{i=1}^{\frac{n}{d}} [gcd(i,\frac{n}{d})=1] \\
&= \dfrac{1}{n} \sum\limits_{d|n} f(d) \varphi(\frac{n}{d})
\end{aligned}$$
注意到每个循环节都相同,可以对循环节单独考虑,则 $f(n)$ 即为长度为 $n$ 的项链的合法方案数。
合法方案要求相邻两个珠子颜色不同,且首尾颜色不同,考虑递推求解 $f(n)$ ,若 $n-1$ 与第一个珠子颜色不同,贡献 $f(n-1) \times (c-2)$ ,若 $n-1$ 与第一个珠子颜色相同,贡献 $f(n-2) \times (c-1)$ ,得到递推式:
$$f(n)=f(n-1) \times (c-2)+f(n-2) \times (c-1)$$
此时使用矩阵快速幂即可做到 $O(\log n)$ ,但常数过大无法通过,于是尝试使用方程特征法求出通项公式。
$$r^2-r(c-2)-(c-1)=0$$
解方程得到根 $r_1=c-1,r_2=-1$ ,得到递推关系通解。
$$f(n)=A(c-1)^n+B(-1)^n$$
带入 $f(1)=0$ ,$f(2)=c(c-1)$ ,解得 $A=1,B=c-1$,得到通项公式。
$$f(n)=(c-1)^n+(c-1)(-1)^n$$
最后枚举质因数 $O(1)$ 求欧拉函数即可解决本题,注意到 $n$ 可能整除 $10^9+7$ ,因此当 $n$ 是 $10^9+7$ 的倍数时,将模数改为 $(10^9+7)^2$ ,最后除 $10^9+7$ 即可。
时间复杂度 $O(Td(n)\log n)$。相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...