zoukankan      html  css  js  c++  java
  • 卡特兰数:翻折思想 翻折前后一一对应

    递推形式

    对于卡特兰数的定义N个1和N个-1的任意前缀和非负的序列的数量问题,我们定义合法为任意前缀和非负。就是说如果从正面硬刚正推的话,我们枚举最短合法后缀第1个元素(一定是1)所在的位置i。那么前i-1个元素和第i+1~N-1的元素分别构成了两个子卡特兰序列(前i-1个元素显然是卡特兰序列,后面那个也可以证明,可以向量化在二维坐标中表示),那么也就是说他就是一个c[i]城上C[n-i-1]的积的求和。也就是递推形式。这种枚举后缀的方法是我刚才灵光一现突然想到的。

    一般形式

    如果从侧面考虑,就是我们考虑最短的不合法的前缀,那么我们对这些前缀的元素全部取反,就得到了一个 N+1个1和N-1个-1的序列。可以证明这种翻折前后两个序列是一一对应的,因此数量一样。并且可以证明这个翻折后的序列是任意的。所以可以用N+1个1和N-1个-1的任意序列的数量来表示全集中不合法的情况。也就是那个一般表达式。

    翻折思想 翻折前后一一对应

    关于y=-1翻折

    n个1 n个-1序列任意前缀和>=0 的序列数
    n个数入栈后出栈的排列总数
    n个节点的二叉树的形态数

    https://www.cnblogs.com/linzhengmin/p/11298140.html

  • 相关阅读:
    RGB空间与HSV空间的相互转换(C++实现,修正网上大多数的代码错误)
    SLIC superpixel实现分析
    开发自己PHP MVC框架(一)
    C++ 直方图匹配算法代码
    准确率与召回率
    Github干货系列:C++资源集合-
    ezw证件照芯片压缩算法
    格拉姆-施密特正交化
    [轉]sendpage漏洞分析 CVE-2009-2692
    ptrace
  • 原文地址:https://www.cnblogs.com/universeplayer/p/15574426.html
Copyright © 2011-2022 走看看