zoukankan      html  css  js  c++  java
  • 二叉树计数2(卡特兰数+高精乘低精+高精除低精)

    二叉树计数2

    题目描述:
    一个有n个结点的二叉树总共有多少种形态
    输入描述:
    读入一个正整数n
    输出描述:
    输出一个正整数表示答案
    样例输入:
    5
    样例输出:
    42
    数据范围及提示:
    1<=n<=100

    #include<iostream>
    using namespace std;
    const int maxn=10010;
    int n,len,f[maxn];
    void mul(int k)
    {
        for(int i=1;i<=len;i++)
        f[i]*=k;
        for(int i=1;i<=len;i++)
        if(f[i]>9)
        {
            f[i+1]=f[i+1]+f[i]/10;
            f[i]=f[i]%10;
        }
        while(f[len+1])
        {
            len++;
            f[len+1]=f[len+1]+f[len]/10;
            f[len]=f[len]%10;
        }
    }
    void div(int k)
    {
        int tmp=0,a[maxn]={0},b[maxn]={0};
        for(int i=1;i<=len;i++)
        a[i]=f[len-i+1];
        for(int i=1;i<=len;i++)
        {
            b[i]=(tmp*10+a[i])/k;
            tmp=(tmp*10+a[i])%k;
        }
        for(int i=1;i<=len;i++)
        f[i]=b[len-i+1];
        while(len>=1&&!f[len])
        len--;
    }
    void work(int k)
    {
        mul(4*k-2);
        div(k+1);
    }
    int main()
    {
        f[1]=1,len=1;
        cin>>n;
        for(int i=2;i<=n;i++)
        work(i);
        for(int i=len;i>=1;i--)
        cout<<f[i];
        return 0;
    }
  • 相关阅读:
    Linux中的用户和用户组
    GCC编译过程
    C++设计模式——单例模式(转)
    快速排序之python
    归并排序之python
    计数排序之python
    希尔排序之python
    插入排序之python
    选择排序之python
    冒泡排序之python
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070916.html
Copyright © 2011-2022 走看看