ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

杨表和钩子公式

2022-07-08 18:04:48  阅读:181  来源: 互联网

标签:frac 钩子 sum mu 杨表 text 公式 prod lambda


杨表

杨氏矩阵(Young Tableau),又称杨表,是一类每行长度严格不降的表格,大小为 \(n\),数字 \(1,2,..,n\) 在表中满足从左到右和从上到下严格递增。设第 \(i\) 行的长度为 \(\lambda_i\),则 \(\lambda _i\geq \lambda_{i-1},\sum_{i}\lambda_i=n\),大小为 \(n\) 的杨表形态 \((\lambda_1,\lambda_2,...)\) 与 \(n\) 的整数划分一一对应。

形态为 (5,4,1) 的杨表:

设 \(Y(\lambda)\) 为划分 \(\lambda\) 对应形态的杨表,\(f(\lambda)\) 表示杨表 \(Y(\lambda)\) 中填数的方案数。

设划分 \(\lambda,\mu\) 分别是 \(n,n-1\) 的划分(\(n\geq 2\)),若 \(\exist j,s.t.\forall i\neq j,\lambda_i=\mu_i,\;\;\lambda_j=\mu_i+1\),记 \(\mu \uparrow \lambda\)。

对于 \((i,j)\in Y(\lambda)\),记 \(H_{\lambda}(i,j)\) 表示 \((i,j)\) 自身以及下方和右方的格子集合(\(\text{Hook}\)),\(h_{\lambda}(i,j)=|H_{\lambda}(i,j)|\) 。

钩子公式

\(\text{Hook Formula}\):

\[f(\lambda)=\frac{n!}{\displaystyle\prod_{(i,j)\in Y(\lambda)}h_{\lambda}(i,j)} \]

\(\text{Proof}\):

设 \(c_1,c_2,..,c_m\) 为 \(h_{\lambda}(i,j)=1\) 的位置,记 \(\mu_i=\lambda / \{c_i\}\),显然 \(\{\mu_1,\mu_2,..,\mu_m\}=\{\mu|\mu\uparrow \lambda\}\) 。

\(f(\lambda)\) 满足 \(\displaystyle f(\lambda)=\sum_{\mu\uparrow \lambda}f(\mu)\),设 \(\displaystyle e(\lambda)=\frac{n!}{\prod_{(i,j)\in Y(\lambda)}h_{\lambda}(i,j)}\),由于 \(f(\empty)=e(\empty)=1\):

\[f(\lambda)=e(\lambda)\iff e(\lambda)=\sum_{\mu\uparrow \lambda}e(\lambda) \]

于是命题转化成证明:\(\displaystyle \sum_{i=1}^m \frac{e(\mu_i)}{e(\lambda)}=1\) 。

定义以下随机游走(\(\text{Hook Walk}\)):

  1. 随机选取一个位置 \((i,j)\in Y(\lambda)\) 出发。
  2. 每次从 \((i,j)\) 等概率地走到 \(H_{\lambda}(i,j)/ \{(i,j)\}\) 中随机一格。
  3. 若来到某个位置 \(c_i\),则随机过程结束。

显然 \(\sum_{i=1}^m P(\text{终点为 }c_i)=1\),下证 \(P(\text{终点为 }c_i)=\frac{e(\mu_i)}{e(\lambda)}\) :

注意到 \(h_{\lambda}(i,j)+h_\lambda(i+1,j+1)=h_\lambda(i,j+1)+h_\lambda(i+1,j)\),且只有在 \((i,j)\) 正上方和正右方的位置可以走到 \((i,j)\) 。于是构造二维矩阵 \(\{h_{i,j}\},\{p_{i,j}\}\) :

\[\begin{cases} h_{0,0}=0,\;h_{i,0},h_{0,j}\in \mathbb{N}_+&i>0,j>0\\ h_{i,j}=h_{i,j-1}+h_{i-1,j}-h_{i-1,j-1}&i,j>0 \\ p_{0,0}=1,\;\displaystyle p_{i,j}=\frac{1}{h_{i,j}}\left(\sum_{a=0}^{i-1}p_{a,j}+\sum_{b=0}^{j-1}p_{i,b}\right) & (i,j)\neq (0,0) \end{cases} \]

\(\text{Lemma}\):\(\displaystyle \sum_{k=0}^i\sum_{l=0}^j p_{k,l}=\prod_{k=0}^i(1+\frac{1}{h_{k,0}})\prod_{l=0}^j(1+\frac{1}{h_{0,l}})\)

\(\text{Proof}\):考虑归纳,首先容易验证 \(i,j\in\{0,1\}\) 上式成立。

根据 \(h_{i,j}\) 的递推式,容易得到 \(h_{i,j}=h_{i,0}+h_{0,j}\) 。设 \(S(i,j)=\displaystyle\sum_{k=0}^i\sum_{l=0}^j p_{k,l}\),对于 \(S(i,0)\),其值相当于从 \((0,0)\) 出发,每次向下走若格,然后标记一个 \(h_{i,0}\),由归纳容易得到 \(S(i,0)=\prod_{k=0}^i (1+\frac1{h_{k,0}})\) 以及类似地 \(S(0,j)=\prod_{l=0}^j (1+\frac1{h_{0,l}})\),两者满足条件。对于当前 \(i,j>0\),假设 \(S(i-1,j-1),S(i-1,j),S(i,j-1)\) 均满足条件,则

\[\begin{align} S(i,j)&=p_{i,j}+S(i-1,j)+S(i,j-1)-S(i-1,j-1) \\ &= \frac{1}{h_{i,j}}\left(\sum_{k=0}^{i-1}p_{k,j}+\sum_{l=0}^{j-1}p_{i,l}\right) + S(i\!-\!1,j\!-\!1)\left(1+\frac{1}{h_{0,j}}+1+\frac{1}{h_{i,0}} -1\right) \\ &= \frac{1}{h_{i,j}}(S(i\!-\!1,j)+S(i,j\!-\!1)-2S(i\!-\!1,j\!-\!1))+S(i\!-\!1,j\!-\!1)\left(1+\frac{1}{h_{0,j}}+\frac{1}{h_{i,0}}\right) \\ &= S(i\!-\!1,j\!-\!1)\left(\frac{1}{h_{i,0}+h_{0,j}}(\frac{1}{h_{0,j}}+\frac{1}{h_{i,0}})+1+\frac{1}{h_{0,j}}+\frac{1}{h_{i,0}}\right) \\ &= S(i\!-\!1,j\!-\!1)(1+\frac{1}{h_{0,j}})(1+\frac{1}{h_{i,0}}) \\ &= \prod_{k=0}^i(1+\frac{1}{h_{k,0}})\prod_{l=0}^j(1+\frac{1}{h_{0,l}}) \end{align} \]

由归纳 \(\text{Lemma}\) 得证。

对应到原问题,对于 \((a,b)\),令 \(h_{i,0}\) 和 \(h_{0,j}\) 为 \(h_{\lambda}(a\!-\!i,b)-1\) 和 \(h_{\lambda}(a,b\!-\!j)-1\),则对于任意 \(i,j\geq 0\) 有 \(h_{i,j}=h_{\lambda}(a\!-\!i,b\!-\!j)-1\),\(p_{i,j}\) 为从 \((a\!-\!i,b\!-\!j)\) 走到 \((a,b)\) 的概率。令 \((a,b)\) 为 \(c_i\) :

\[P(\text{终点为 }c_i)=\frac{1}{n}\sum_{i=0}^{a-1}\sum_{j=0}^{b-1}p_{i,j}=\frac1n\prod_{i=0}^{a-1}\left(1+\frac{1}{h_{\lambda}(a-i,b)-1}\right)\prod_{j=0}^{b-1}\left(1+\frac{1}{h_{\lambda}(a,b-j)-1}\right)\\ =\frac{\displaystyle\prod_{i=0}^{a-1}h_{\lambda}(a,b-j)\prod_{j=0}^{b-1}h_{\lambda}(a,b-j)}{\displaystyle n\prod_{i=0}^{a-1}(h_{\lambda}(a,b-j)-1)\prod_{j=0}^{b-1}(h_{\lambda}(a,b-j)-1)} = \frac{e(\mu_i)}{e(\lambda)} \]

因此 \(\text{Hook Formula}\) 得证。

应用

有一个 \(n\times m\) 的网格,你希望用 \(3-\)连通块(\(\text{triomino}\)) 覆盖整个网格,每个块从 \(1\) 到 \(nm/3\) 标号。对于两个块 \(X,Y\),若 \(X\) 的某个格子位于 \(Y\) 的一个格子的正左方或正上方,则 \(X\) 的标号需要小于 \(Y\) 。

求带标号的覆盖方案数,模 \(10^9+7\) 。\(1\leq n,m\leq 10^4\)

HackerRank : Triomino Tiling

标号方式使得可能出现两个块的标号关系是自相矛盾的,因此合法的 \(\text{triomino}\) 只有 \(4\) 种:

#  ##   #  ###
#  #   ## 
#      

考虑从左上角开始填,使得轮廓线任意时刻都是单调的,即长度为 \(n+m\),记竖着的线段为 \(1\),横着的为 \(0\),则任意时刻的轮廓线都可以表示为长度为 \(n+m\) 的 \(01\) 序列,其中有 \(n\) 个 \(1\) 和 \(m\) 个 \(0\) 。

对于每种合法 \(\text{triomino}\),加入时对轮廓线产生的变化分别为:1110 -> 00011100 -> 01011010 -> 00111000 -> 0001 。可以发现,无论中间两个值是什么,加入一个 \(\text{triomino}\) 都是将两边的 01 互换。

本来是要 111...11000...0 转变为 000...0111...11,现在能做的操作是将两个相距 \(3\) 格的 01 互换,考虑将序列位置按照 \(\!\!\!\mod 3\) 分开考虑。于是现在有三个 11..10..00,每次可以将相邻的 01 互换,最终变成 0..0011..1,求方案数。

将这个问题往回转,可以发现就是在网格里单调地填方块,方块先后顺序需要满足的约束与杨表相同,因此就是一个矩形杨表计数问题,设矩形为 \(n\times m\),则方案数为:

\[\frac{(nm)!}{\displaystyle\prod_{i=1}^n\prod_{j=1}^m (i+j-1)} =\frac{(nm)!\prod_{i=1}^n (i-1)!}{\prod_{i=1}^n (i+m-1)!} \]

设 \(S(n)=\prod_{i=1}^n i!\),则答案为 \(\displaystyle \frac{(nm)!S(n-1)S(m-1)}{S(n+m-1)}\),于是预处理阶乘,时间复杂度为 \(O(nm+T)\) 。

标签:frac,钩子,sum,mu,杨表,text,公式,prod,lambda
来源: https://www.cnblogs.com/Neal-lee/p/16459259.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有