杨表

杨表:每列递增,每行递增(每个数均在1~n之间)
半杨表(非标准杨表):每列递增,每行非严格增


概念:行插入,列插入
行插入:寻找每行第一个>x的值,替换,用该值往下一行重复该操作;若x>该行最大值,插入行尾
列插入类似。

设杨表(P,Q),P为原杨表,Q为记录表。
可以将任何一排列( π 1 , π 2 , ⋯   , π k \pi_1,\pi_2,\cdots,\pi_k π1,π2,,πk) ↔ \leftrightarrow (P,Q)。(可逆)


有序数列对映射 ↔ \leftrightarrow 半杨表:(可逆)

有序数列对((u1,v1) ≤ \le (u2,v2) ≤ \le , ⋯ \cdots , ≤ \le (un,vn)),比较法同字典序。

此时依次插入v1,v2,…vn进半杨表P,当vi那步新出现格子(x,y),填Q(x,y)=ui,最终可以得到有序数列对对于半杨表的映射,该操作可逆即通过半杨表还原有序数列对形态。


RSK

RSK推论: n ! = ∑ λ C λ 2 n!=\sum\limits_{\lambda}C_\lambda^2 n!=λCλ2

可以将任何一排列( π 1 , π 2 , ⋯   , π k \pi_1,\pi_2,\cdots,\pi_k π1,π2,,πk)与(P,Q)一一映射。(可逆)
有序数列对映射 ↔ \leftrightarrow 半杨表:(可逆)


杨表性质

性质0:对于排列 π ( π 1 , ⋯   , π n ) \pi(\pi_1,\cdots,\pi_n) π(π1,,πn) ∣ L I S ( π ) ∣ = P π |LIS(\pi)|=P_\pi LIS(π)=Pπ的第一行宽度(仅当 π i \pi_i πi各不相同,若存在相同,将相同数分别加上 k × ϵ k\times\epsilon k×ϵ来去重)。


性质1: π ↔ ( P , Q ) \pi\leftrightarrow(P,Q) π(P,Q),则 π − 1 ↔ ( Q , P ) \pi^{-1}\leftrightarrow(Q,P) π1(Q,P)
性质2: π ↔ ( P , Q ) \pi\leftrightarrow(P,Q) π(P,Q),则 π R ↔ ( P T , ? ) \pi^{R}\leftrightarrow(P^T,?) πR(PT,?),问号指无特殊性质。
其中 P T P^T PT表示P的转置,即翻转对角线所得P。

证明性质2:
需要用到归纳法和引理。
引理: y → ( S ← x ) = ( y → S ) ← x y\rightarrow (S\leftarrow x)=(y\rightarrow S)\leftarrow x y(Sx)=(yS)x,“ ← \leftarrow "指行插,” → \rightarrow "指列插(分情况讨论证明,略)。

定义: P ( x 1 , . . . , x n ) = ( ⋯ ( x 1 ← x 2 ) ← ⋯   ) ← x n ) P(x_1,...,x_n)=(\cdots(x_1\leftarrow x_2)\leftarrow \cdots)\leftarrow x_n) P(x1,...,xn)=((x1x2))xn)
P ( x 1 , . . . , x n ) = ( x 1 ⋯ ( ← x 2 ) ← ⋯   ) ← x n ) P(x_1,...,x_n)=(x_1\cdots(\leftarrow x_2)\leftarrow \cdots)\leftarrow x_n) P(x1,...,xn)=(x1(x2))xn)

证明性质1:


性质0’: ∣ L D S ( π ) = P π |LDS(\pi)=P^\pi LDS(π)=Pπ的第一列高度。
性质3(Extended RSK 定理) :
1.找 k 个LIS(不交), max总长=前 k 行总宽
1.找 k 个LDS(不交), max总长=前 k 列总高

k个LIS/LDS可用网络流求。
性质3难证。


性质
( b 1 , b 2 , . . . , b n ) → λ (b_1,b_2,..., b_n)\rightarrow\lambda (b1,b2,...,bn)λ ( − b 1 , − b 2 , . . . , − b n ) → λ T (-b_1,-b_2,...,-b_n)\rightarrow\lambda^T (b1,b2,...,bn)λT
λ \lambda λ λ T \lambda^T λT形态转置,值不转置。
该结论目前仅在[CTST2017] 最长上升子序列一题中用到。


快算杨表算法

通过RSK计算 π \pi π的映射(P,Q),求Q可以转化为求 π − 1 \pi^{-1} π1的映射P(性质1)。
对于有序排列对 π \pi π,可知映射到杨表P中只有前 n \sqrt n n 行和前 n \sqrt n n 列中存在数,又由性质2可知我们只需求出前 n \sqrt n n 行即可,时间复杂度 O ( n n log ⁡ n ) O(n\sqrt n \log n) O(nn logn)


杨表计数:
杨表对应involution矩阵,即对称的每行每列1个1的矩阵,求involution矩阵个数即可。

杨表求LIS的期望长度的时间复杂度约为 2 x 2\sqrt x 2x ,式子:
∑ λ C λ 2 × λ 1 n ! \frac{\sum\limits_{\lambda}C_{\lambda}^2\times\lambda_1}{n!} n!λCλ2×λ1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值