zoukankan      html  css  js  c++  java
  • Ⅳ.Catalan数

    Catalan数首先是由Euler在精确计算对凸n边形的不同的对角三角形剖分的个数问题时得到的,它经常出现在组合计数问题中。
          问题的提出:在一个凸n边形中,通过不相交于n边形内部的对角线,把n边形拆分成若干三角形,不同的拆分数目用hn表示,hn即为Catalan数。例如五边形有如下五种拆分方案(图3-14),故h5=5。求对于一个任意的凸n边形相应的hn。
     

    Catalan数是比较复杂的递推关系,尤其在竞赛的时候,选手很难在较短的时间里建立起正确的递推关系。当然,Catalan数类的问题也可以用搜索的方法来完成,但是,搜索的方法与利用递推关系的方法比较起来,不仅效率低,编程复杂度也陡然提高。
     
    //include<AC自动机>
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<string>
    int f[100000];
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        f[2]=1;
        f[3]=1;
        for(int i=4;i<=n;++i)
        {
            for(int j=2;j<=n-1;j++)
            {
                f[i]=f[j]*f[i-j+1]+f[i];
            }
        }
        cout<<f[n];
        return 0;
    }
  • 相关阅读:
    CSwinform程序分页
    C#跨线程访问控件
    CS程序发布版本后提示自动升级功能
    winform控件的二次开发
    JavaNetty拆包粘包(二)
    JavaNetty(一)
    JavaAIO编程
    javaNIO编程
    Java中bio编程
    如何使用CryptoJS配合Java进行AES加密和解密
  • 原文地址:https://www.cnblogs.com/sssy/p/6598475.html
Copyright © 2011-2022 走看看