Permutation (排列与置换)
Permutation
Permutation(排列)
Definition (Permutation)
排列 (全排列):将
个不同的元素排成一列,称为这 个元素的排列。
大小为
Definition (Inversion)
逆序对:对于
个元素,如果它们构成了一个全序 (即任意两个元素之间都可以比较),对于它们的一个排列,如果两个元素在排列中的顺序与全序中的顺序不同,则称它们是一个逆序对。
逆序数:一个排列中所有逆序的总数叫做这个排列的逆序数,记作 。
Definition (Parity of A Permutation)
奇排列 (Odd permutation):若一个排列的逆序数为奇数,则称它为奇排列。
偶排列 (Even permutation):若一个排列的逆序数为偶数,则称它为偶排列。
排列的符号:一个排列的符号 (Sign) 定义为 ,即,奇排列的符号为 -1,偶排列的符号为 1。
Permutation (置换)
Permutation(置换)
一个置换可以看成一个一一映射 (双射)
(注:
为了强调置换是一种变换/映射,我们通常使用
Inverse of A Permutation
Definition (Inverse of A Permutation)
对一个置换
,定义它的逆为 。 即
。
。
Theorem 1
一个置换和它的逆具有相同的逆序数和符号。
Special Permutations
恒等置换
对换
仅有一个二元组满足
则称
- 将一个置换
与对换进行合成,相当于交换置换(排列) 中的两个元素。(见下文合成的定义)
Composition
Definition (Composition)
设
, 。
与 的合成记作 ,简写作 。 有
。
-
。 -
。 -
( 个 )。 -
合成不满足交换律。
-
消去律:若
,则 。考虑两边乘上
。
Permutation And Sign
**Theorem 2 **
对于大小相同的置换
,有 。
- 所有的对换均为奇置换。
Corollary 1
交换置换中的两个元素,改变置换的奇偶性。
Theorem 3
交换置换
中相邻的两个元素 ,如果 ,则交换后置换的逆序数为 ,否则为 。
Cycle(循环)
Cycle And Graph
Definition (Cycle)
对
个元素的一个排列 ,如果置换 满足 ,则称置换 为一个循环 (或轮换),简记为 , 称为该循环的长度。
Definition (Cycle Notation)
对
元置换 ,称下式为 的循环表示: 。 其中
,且所有 互不相同。
为置换 的循环表示中的循环数,记作 ,在上下文已知的情况下可记为 。
-
如果有一个循环的长度为
,则可以省略不写。 -
循环合成置换。
-
与图论的联系。
一个循环可以表示成一个有向图,且该图恰为一个环。
每个循环相互独立。
对换对循环的影响
同一个循环里的对换:
不同循环的对换:
Theorem 4
任意交换置换
中的两个元素,则交换后置换的循环数与原置换 的循环数 的差为 。 即
。
见上图。
Corollary 2
一个
元置换 是偶置换的充分必要条件是,它的循环数 。
排序后的最终状态是形成
由定理
即使序列从小到大有序的最小交换次数为
结合 Corollary 1,每次对换改变置换的奇偶性。
由最终状态是一个偶置换(逆序数为
置换快速幂
假设一个循环的长度为
可以避免使用传统的
对于一个置换,将其中的所有循环都这样处理即可。
Cycle Index(循环指标)
Cycle Index
Definition (Cycle Index)
对
元置换 ,设 的循环表示为 。 设这些循环中有
个循环大小为 ,则定义 的循环指标为 , 其中
为形式变元,就像生成函数中的 一样。
。 。
拆分的方案记作拆分数
(5=4+1=3+2=3+1+1=2+2+1=2+1+1+1=1+1+1+1+1)
固定循环指标的置换计数
Problem
给定一个循环指标
,求有多少个 元置换以它为循环指标。
先把每个循环里的数确定下来,由可重组合公式,方案数为
相当于在总的方案中除掉在一个循环中那些相同的数自行排列的重复方案。
相同长度的循环可以形成排列,还要除掉这些重复的方案,新的方案数为
每个循环内可以形成圆排列,要考虑这些不重复的方案,因此方案数乘上
Order(阶)
Definition (Order)
对于置换
,使得 成立的最小的正整数 称为 的阶,记作 。
注意阶和元的区分。
- 置换
的阶为 当且仅当 为恒等置换 。 - 置换
的阶为 当且仅当 为非恒等置换的对合置换。 - 若
元置换 是循环,则 (逆命题不一定成立,如置换 (1 2) (3 4 5) (6) 的阶也是 6)。
Theorem 5
一个置换的阶等于构成它的所有循环长度的最小公倍数。
即
。
置换的循环数分布
Theorem 6
含有
个循环的 元置换的数量为 ,其中 为第一类 Stirling 数,定义如下:
Corollary 3
对
, 元奇置换和偶置换的个数相等,都等于 。
置换的逆序数分布
Problem
研究
个逆序对的 元置换数。
设逆序数为
令生成函数
对于
递推得:
则
具体实现时,考虑该式可化成另一种形式:
yhx大佬说可以多项式 ln/exp,但我不会。
分母可以这样化:
分子的意义是,从
这玩意儿可以用背包做,思想就是维护一个升序的选取方案,满足前后两项差值为正。
由于选择的数互不相同,因此能选的数很少,小于
具体做法是:
令
看网上有人说这种做法叫柱状图 dp,我觉得还挺形象。考虑
-
将
个数集体加 , 。 -
将
个数集体加 后在最前面插入 ,共 个数, 。 -
由于每次操作前都让所有数加
,所以 会出现最后一项为 的情况,此时令
,可看作是减掉在末尾加上 的转移方案。
最后把分子分母的展开形式卷起来即可。
可做到
没取模 加爆了
本文作者:Schucking-Sattin
本文链接:https://www.cnblogs.com/Schucking-Sattin/p/16544719.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步