0
点赞
收藏
分享

微信扫一扫

杨表与钩子公式

倚然君 2022-08-16 阅读 68


搬运 2019 袁方舟论文

我们先来简单认识一下杨表:
一个标准杨表是说,每一行严格上升,每一列严格上升
设杨表 表示有 行,
每行有 个数,并且
杨表的边角说的是 ,使得 都是空的
表示的是往形状为

  • 杨表的插入:设插入,从第一行开始,找到的最小的,设为,若不存在,就把放到最后,否则令
  • 杨表的删除:删除一个边角位,若在第一行,则直接删除,否则在上一行找到一个小于它的最大的,然后重复这个过程,杨表删除后任然是杨表
  • 杨表与钩子公式_编程_14

  • 杨表,排列,双射
    将一个排列插入杨表,并且整一个记录表,设第次将插入时多出来的位置为,那么我们在上写一个,这样的形状相同且也为一个杨表
  • 杨表与钩子公式_编程_24

  • 现在一个排列可以对应一对形状相同的杨表
    接着我们考虑操作,找到的最大值的位置,在中删除这个位置,删除的数为
    也就是说,一对杨表可以对应唯一一个排列,于是我们知道:
  • 钩子公式
    我们希望对一个,求出它的填数方式
    有公式:
    其中表示在杨表中的点的个数
    我们尝试归纳证明,首先是成立的,我们只需要证明:(枚举当前表上一步的表是啥)

    我们考虑需要重新计算的点,首先是只有插入点那行那列的点
    接着注意到一些点是可以约去的:
  • 杨表与钩子公式_编程_39

  • 比如说这个图中,绿色的等于蓝色的(红色的是需要重新计算的点)
  • 杨表与钩子公式_编程_42

  • 即算上,红色的为边角位
    我们定义一直往下的点,一直往右的点
    那么
    我们设边角位的坐标为,然后将需要用到的点画出来,对一些特殊的点进行编号
  • 杨表与钩子公式_编程_51

  • 其中
    那么只需计算(设插入的点是),这个等于
    以及,这个等于
    后面的还有,这个等于,以及
    所以 (不枚举,枚举插入的是哪一行的)

    接着(
  • 杨表与钩子公式_编程_64


  • 杨表与钩子公式_编程_65

  • 这个算的就是杨表的大小
  • 可以用来做计数,枚举的划分就可以做到
  • 钩子公式的另一个形式

    考虑一行的可以去到,将不合法的去掉即可


举报

相关推荐

0 条评论