卡特兰数

应用有:
括号化 出栈次序 凸多边形三角划分 给定节点组成二叉搜索树 n对括号正确匹配数目等

前几项数字分别是1,1,2,5,14,42,139...(f[0]=f[1]=1 f[2]=2)

公式:

f[n]=f[0]*f[n-1]+f[1]*f[n-2]+...f[n-1]*f[0]

例题洛谷P1044

#include <iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
using namespace std;
long long a[25];
int n;
int main(){
	a[1]=1;
	a[0]=1;
	cin>>n;
	for(int i=2;i<=n;i++){
		for(int j=0;j<i;j++){
			a[i]+=a[j]*a[i-j-1];
		}
	}
	cout<<a[n];
  return 0;
}




//  freopen("testdata.in", "r", stdin);
posted @ 2020-10-04 15:52  一个经常掉线的人  阅读(107)  评论(0)    收藏  举报