版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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;
}