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;
}