• 数学:卡特兰数


    令h(0)=1,h(1)=1,catalan数满足递推式:
    h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)

    求法超级简单

     1 #include<cstdio>
     2 int n;
     3 int f[25];
     4 int main()
     5 {
     6     scanf("%d",&n);
     7     f[0]=1;f[1]=1;
     8     for(int i=2;i<=n;i++)
     9         for(int j=0;j<i;j++)
    10             f[i]+=f[j]*f[i-j-1];
    11     printf("%d",f[n]);
    12     return 0;
    13 }

    关键是应用

    这里给出四种最典型的应用:

    括号化
    矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积
    试问有几种括号化的方案?
    
    出栈次序
    一个栈(无穷大)的进栈序列为1,23,…,n,有多少个不同的出栈序列?
    
    凸多边形三角划分
    在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。
    任务是键盘上输入凸多边形的边数n,求不同划分的方案数
    
    给定节点组成二叉搜索树
    给定N个节点,能构成多少种不同的二叉搜索树
    
    n对括号正确匹配数目
    给定n对括号,求括号正确配对的字符串数

    但是不可能直接出这四种

    肯定是你看不出来的,然后打表找规律发现是卡特兰数,应该是和递归息息相关的

  • 相关阅读:
    浅谈 LCA
    树剖毒瘤题整理
    树链剖分&咕咕咕了好久好久的qtree3
    洛谷P4095新背包问题
    洛谷P4127同类分布
    洛谷P4124 手机号码
    数位dp好题整理+自己wa过的细节记录
    P4999烦(gui)人(chu)的数学作业
    洛谷P4317 花(fa)神的数论题(数位dp解法)
    网络流之最短路径覆盖问题
  • 原文地址:https://www.cnblogs.com/aininot260/p/9488474.html
Copyright © 2020-2023  润新知