杨表与钩子公式

搬运 2019 袁方舟论文

我们先来简单认识一下杨表:
一个标准杨表是说,每一行严格上升,每一列严格上升
设杨表 λ = ( λ 1 , λ 2 , … , λ m ) \lambda=(\lambda_1,\lambda_2,\dots,\lambda_m) λ=(λ1,λ2,,λm) 表示有 m m m 行,
每行有 λ i \lambda_i λi 个数,并且 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ m \lambda_1\ge \lambda_2\ge\dots\ge \lambda_m λ1λ2λm
杨表的边角说的是 { ( i , j ) } \{(i,j)\} {(i,j)},使得 ( i + 1 , j ) , ( i , j + 1 ) (i+1,j),(i,j+1) (i+1,j),(i,j+1) 都是空的
f λ f_{\lambda} fλ 表示的是往形状为 λ \lambda λ 的杨表中填数的方案数

  • 杨表的插入:设插入 x x x,从第一行开始,找到 > x >x >x 的最小的,设为 y y y,若不存在,就把 x x x 放到最后,否则令 x = y x=y x=y 然后继续插入,容易证明插入后还是杨表
  • 杨表的删除:删除一个边角位,若在第一行,则直接删除,否则在上一行找到一个小于它的最大的,然后重复这个过程,杨表删除后任然是杨表
    在这里插入图片描述
  • 杨表,排列,双射
    将一个排列插入杨表 P P P,并且整一个记录表 Q Q Q,设第 i i i 次将 p i p_i pi 插入时多出来的位置为 ( x , y ) (x,y) (x,y),那么我们在 Q x , y Q_{x,y} Qx,y 上写一个 i i i,这样 P , Q P,Q P,Q 的形状相同且 Q Q Q 也为一个杨表
    在这里插入图片描述
    现在一个排列可以对应一对形状相同的杨表
    接着我们考虑操作,找到 Q Q Q 的最大值 m m m 的位置 ( x , y ) (x,y) (x,y),在 P P P 中删除这个位置,删除的数为 p m p_m pm
    也就是说,一对杨表可以对应唯一一个排列,于是我们知道:
    ∑ λ f λ 2 = n ! \sum_{\lambda} f_{\lambda}^2=n! λfλ2=n!
  • 钩子公式
    我们希望对一个 λ \lambda λ,求出它的填数方式 f λ f_{\lambda} fλ
    有公式: f λ = n ! ∏ h λ ( i , j ) f_{\lambda}=\frac{n!}{\prod h_{\lambda}(i,j)} fλ=hλ(i,j)n!
    其中 h ( i , j ) h(i,j) h(i,j) 表示在杨表中 ( i , b ≥ j ) (i,b\ge j) (i,bj) ( a ≥ i , j ) (a\ge i,j) (ai,j) 的点的个数
    我们尝试归纳证明,首先 n = 1 n=1 n=1 是成立的,我们只需要证明:(枚举当前表上一步的表是啥)
    n ! ∏ h λ ( i , j ) = ∑ μ → λ ( n − 1 ) ! ∏ h μ ( i , j ) , ∑ μ → λ ∏ h λ ( i , j ) ∏ h μ ( i , j ) = n \frac{n!}{\prod h_{\lambda}(i,j)}=\sum_{\mu\rightarrow \lambda}\frac{(n-1)!}{\prod h_{\mu}(i,j)},\sum_{\mu\rightarrow \lambda}\frac{\prod h_{\lambda}(i,j)}{\prod h_{\mu}(i,j)}=n hλ(i,j)n!=μλhμ(i,j)(n1)!,μλhμ(i,j)hλ(i,j)=n
    我们考虑需要重新计算的点,首先是只有插入点那行那列的点
    接着注意到一些点是可以约去的:
    在这里插入图片描述
    比如说这个图中,绿色的 ∏ h λ ( i , j ) \prod h_{\lambda}(i,j) hλ(i,j) 等于蓝色的 ∏ h μ ( i , j ) \prod h_{\mu}(i,j) hμ(i,j)(红色的是需要重新计算的点)
    在这里插入图片描述
    即算上 ∏ ( i , j ) ∈ B l u e h λ ( i , j ) ∏ ( i , j ) ∈ G r e e n h μ ( i , j ) \frac{\prod_{(i,j)\in Blue}h_{\lambda}(i,j)}{\prod_{(i,j)\in Green}h_{\mu}(i,j)} (i,j)Greenhμ(i,j)(i,j)Bluehλ(i,j),红色的为边角位
    我们定义 c t ( i , j ) = i − j ct(i,j)=i-j ct(i,j)=ij A ( i , j ) A(i,j) A(i,j) ( i , j ) (i,j) (i,j) 一直往下的点, B ( i , j ) B(i,j) B(i,j) ( i , j ) (i,j) (i,j) 一直往右的点
    那么 h ( i , j ) = c t ( A ( i , j ) ) − c t ( B ( i , j ) ) + 1 h(i,j)=ct(A(i,j))-ct(B(i,j))+1 h(i,j)=ct(A(i,j))ct(B(i,j))+1
    我们设边角位的坐标为 ( a i , b i ) (a_i,b_i) (ai,bi),然后将需要用到的点画出来,对一些特殊的点进行编号
    在这里插入图片描述
    其中 x i = ( a i , b i ) , y i = ( a i , b i + 1 ) x_i=(a_i,b_i),y_i=(a_i,b_{i+1}) xi=(ai,bi),yi=(ai,bi+1)
    那么只需计算 h λ ( a j + 1 , b i ) , 0 ≤ j < i h_{\lambda}(a_j+1,b_i),0\le j<i hλ(aj+1,bi),0j<i(设插入的点是 x i x_i xi),这个等于 ( x i − y j ) (x_i-y_j) (xiyj)
    以及 h μ ( a j , b i ) , 1 ≤ j < i h_{\mu}(a_j,b_i),1\le j<i hμ(aj,bi),1j<i,这个等于 ( x i − x j ) (x_i-x_j) (xixj)
    后面的还有 h λ ( a i , b j + 1 ) h_{\lambda}(a_i,b_j+1) hλ(ai,bj+1),这个等于 ( y j − x i ) (y_j-x_i) (yjxi),以及 h μ ( a i , b j ) = ( x j − x i ) h_{\mu}(a_i,b_j)=(x_j-x_i) hμ(ai,bj)=(xjxi)
    所以 (不枚举 μ \mu μ,枚举插入的是哪一行的)
    ∑ μ → λ ∏ h λ ( i , j ) ∏ h μ ( i , j ) = − ∑ i = 1 m ∏ j = 0 m ( x i − y j ) ∏ j = 1 , j ≠ i m ( x i − x j ) \sum_{\mu\rightarrow \lambda}\frac{\prod h_{\lambda}(i,j)}{\prod h_{\mu}(i,j)}=-\sum_{i=1}^m\frac{\prod_{j=0}^m(x_i-y_j)}{\prod_{j=1,j\neq i}^m(x_i-x_j)} μλhμ(i,j)hλ(i,j)=i=1mj=1,j=im(xixj)j=0m(xiyj)
    接着( ∑ x i = ∑ i = 1 m a i − b i = ∑ i = 0 m a i − ∑ i = 1 m + 1 b i = ∑ y i \sum x_i=\sum_{i=1}^m a_i-b_i=\sum_{i=0}^ma_i-\sum_{i=1}^{m+1}b_i=\sum y_i xi=i=1maibi=i=0maii=1m+1bi=yi
    在这里插入图片描述
    在这里插入图片描述
    这个算的就是杨表的大小
  • 可以用来做 L I S LIS LIS 计数,枚举 λ \lambda λ 的划分就可以做到 n 2 p ( n ) n^2p(n) n2p(n)
  • 钩子公式的另一个形式
    f λ = n ! ∏ h λ ( i , j ) = n ! ∏ i < j ( λ i − λ j + j − i ) ( λ i + m − i ) ! f_{\lambda}=\frac{n!}{\prod h_{\lambda}(i,j)}=n!\frac{\prod_{i<j}(\lambda_i-\lambda_j+j-i)}{(\lambda_i+m-i)!} fλ=hλ(i,j)n!=n!(λi+mi)!i<j(λiλj+ji)
    考虑一行的 h ( i , j ) h(i,j) h(i,j) 可以去到 [ 1 , ( λ i + m − i ) ] [1,(\lambda_i+m-i)] [1,(λi+mi)],将不合法的去掉即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值