2019E0_E Zexal的二叉树

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44024733/article/details/102752447

Zexal的二叉树

题目

知识点:树,数论,dp,递归(都可以做)

上学期我们学习了二叉树,也都知道3个结点的二叉树有5种, 现给你二叉树的结点个数n,要你输出不同形态二叉树的种数。

输入

第一个数为一个整数n(n<=30)

输出

对于每组数据,输出一行,不同形态二叉树的种数。

输入样例

3

输出样例

5

思路

卡特兰数

代码

#include<cstdio>
typedef long long ll;
using namespace std;
ll f[32];
int main(){
    int i,j,n;
    f[1]=f[0]=1;
    for(i=2;i<=30;i++)
        for(j=0;j<i;j++)
            f[i]+=f[j]*f[i-j-1];
    scanf("%d",&n);
    printf("%lld",f[n]);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44024733/article/details/102752447