• Catalan数


    Catalan数:

    f[n] = f[1]*f[n-1]+f[2]*f[n-2]+.............+f[n-1]*f[1]; 

    递推公式f(n)=((4*n-2)/(n+1))*f(n-1);


    应用:Catalan习题


    1.括号化问题

    .Dyck word是一个有n个X和n个Y组成的字串,且所有的部分字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck words:

    假设n为3:XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY


    我们把x看成做括号,y看成右括号。

    那个元素,我们按最后一个元素出栈分类计算:

    若最后出栈的是第一位,则它等剩余n-1个操作完后出来,a[n-1]

    若最后出栈的第二位,则它先等第一位出来,然后等剩下n-2个处理完后出来,a[n-2]

    若最后出栈的第三位,则它要先等前两位出来,a[2],然后等剩余n-3个处理完后出来,a[2]*a[n-3]

    于是满足Catalan数。栈的出栈次序,n对括号的匹配次序等等


    2.矩阵连乘的方法数问题:

    对于M1(M2(M3M4))和(M1(M2M3))M4会得到相同的结果

    但是前一种需要125000次,后一种2200次乘法。所以我们要注意矩阵相乘的次序

    我们可以借鉴括号化问题来思考,通过考虑最后一次乘法的位置来判断,推理同上。


    3.n节点二叉树的构造方法数(左子树值 < 根节点值 < 右子树的值)

    对于根肯定会占用一个节点,则根节点的左右子树节点数量会有0:n-1  1:n-2 ...... n-1:0

    假设T[n]表示n个节点的方法数:T[n] = T[0]*T[n-1] + ....... T[n-1]*T[0]

    hdu 1130


    4.n凸边形划分为三角形的方法数

    以凸边形的一边AB为基础,我们可以分别讨论第三点所在的位置来,连接三点后,三角形左右是两个凸边形。

    然后求解两个凸边形即可。

    所以F[n] = F[2]*F[n] + F[3]*F[n-1]+......+F[n]*F[2];

    F[0]*F[n-2]表示左边凸边形节点为0,右边凸边形的节点数为n-2


    5.将圆上的2n个点连接起来,求这n条线段不相交的方法数

    类似于三角形的问题,选择一个点为基,则这条直线左右的点数可能:0:n-2   1:n-3 ... n-2:1

    所以我们F[n] = F[0]*F[n-2] + F[1]*F[n-3] + ....... F[n-2]*F[0];


    6. 2n个人排成一行进入剧场,入场费5元。其中n个人有一张5元,另外n个人只有10元。请问有多少种方法使只要

    有10元买票,售票处就一定能找出5元

    类似于上面括号化问题,进行 进出栈即可。


    7.在不越过主对角线的前提下从左下角运动到右上角的方案数。



    不越过主对角线,即步数上x >= y,如此便可以转化成1中求Dyck word   (好机智)

    证明:

    令1表示进栈,0表示出栈,则可转化为求一个2n位、含n个1、n个0的二进制数,满足从左往右扫描到任意一位时,经过的0数不多于1数。显然含n个1、n个0的2n位二进制数共有个,下面考虑不满足要求的数目.

    考虑一个含n个1、n个0的2n位二进制数,扫描到第2m+1位上时有m+1个0和m个1(容易证明一定存在这样的情况),则后面的0-1排列中必有n-m个1和n-m-1个0。将2m+2及其以后的部分0变成1、1变成0,则对应一个n+1个0和n-1个1的二进制数。反之亦然(相似的思路证明两者一一对应)。


    /*在前面出现错误的部分,它的子串(不包括自己)一定是正确的,把前面这段看成key的话,对于每个相同key,

    后面转变后肯定是不同的,所以一一对应。

    /*个人学习


  • 相关阅读:
    Object中的线程等待和Condition
    synchronized锁和Lock锁
    手写二叉排序树(二叉查找树、二叉搜索树)
    JDK源码之ArrayList-Iterator
    JDK源码之ArrayList
    Integer&int,自动装箱&自动拆箱
    学习Zookeeper第一课
    Thumbnailator处理图片
    线程的停止和中断
    BigInteger和BigDecimal
  • 原文地址:https://www.cnblogs.com/Przz/p/5409662.html
Copyright © 2020-2023  润新知