置换
基础双射
将置换 \(p\) 唯一分解为若干循环(轮换分解),对于每个循环以其最大值作为开头,再将所有循环按照字典序升序排序,构成一个新的置换。
这是 \(n\) 阶排列到 \(n\) 阶排列的双射。右推左即为按照前缀最大值划分段从而得到这些循环。
例:\(n\) 阶随机排列中 \(1\) 所在循环长度为 \(k\) 的概率为 \(\frac{1}{n}\)。首先 \(1\) 和 \(n\) 等价,而 \(n\) 所在循环长度为 \(k\) 需要基础双射后它在第 \(n-k+1\) 位。
关于类型的结论
令 \(c_i\) 表示 \(p\) 种长度为 \(i\) 的循环个数,将 \(c_{1,2,...,n}\) 称为 \(p\) 的类型。那么类型为 \(c\) 的置换个数为:\(\Large{\frac{n!}{\prod c_i!i^{c_i}}}\)。
这里双射构造采用《多对一》的方式,对于任意一个置换将前 \(c_1\) 个元素每个都作为一个循环,将之后的 \(2c_2\) 个元素每相邻两个连为一个循环 ... 它能唯一对应到一个合法的排列,并且对于一个合法的排列它会出现 \(\prod c_i!i^{c_i}\) 次。
逆序对与下降
求逆保 \(\text{inv}\):逆序对满足 \(\text{inv}(p)=\text{inv}(p^{-1})\),画在平面上得证
下降集合 \(D(p)\) 是满足 \(p_{i}>p_{i+1}\) 的 \(i\) 构成的集合。主指标 \(\text{maj}(p)=\sum_{i\in D(p)}i\)。
\(\text{inv}(p)\) 和 \(\text{maj}(p)\) 等分布:\(\text{inv}=k\) 和 \(\text{maj}=k\) 的排列个数相同。
杨表
对于 \(n=\sum a_i\) 的一个整数划分 \(a_1\geq a_2\geq ...\geq a_k\),画 \(k\) 行左对齐的格子,第 \(i\) 行格子数为 \(a_i\)。如果将 \(1\sim n\) 中的数不重不漏地填入所有格子并且满足每行每列都严格递增,那么称其为标准杨表。
如果可以填入相同数字,每行不降,每列严格递增,那么称之为半标准杨表。
狗子公式:臂长是右侧格子数,腿长是下方格子处,勾长为臂长加腿长加一,记为 \(\text{hook}(x)\)。那么形状为 \(\lambda\) 的杨表个数为 \(\Large\frac{n!}{\prod_{x\in \lambda}\text{hook}(x)}\)。
值域 \([1,m]\) 的半标准杨表的狗子公式:\(\Large\prod_{(x,y)\in \lambda}\frac{m+y-x}{\text{hook}(x,y)}\)。
\(x\) 或者 \((x,y)\) 表示的是某个格子。
标签:text,置换,杨表,循环,prod,inv From: https://www.cnblogs.com/do-while-true/p/18131839