zznu-(告辞)卡特兰数
2119 : 告辞
时间限制:1 Sec 内存限制:256 MiB
提交:436
答案正确:107
题目描述
整个世界都在散发着恋爱的恶臭,只有spring依旧保持着单身贵族的清香。
spring单身久了,煮饺子看见两个黏在一起的都要强行分开,所以在看到凸n边形的时候,总是习惯性的拆分成n-2个小三角形,毕竟第三者插足是spring最喜闻乐见的,那么给出一个凸n边形,有多少种方法能够将凸n边形分解成n-2个小三角形。
输入
输入一个正整数n,表示有个凸n变形 2<n<30
输出
输出有多少种方法能够将凸n边形分解成n-2个小三角形。
样例输入
复制
3 5
样例输出
复制
1 5
思路:就是用卡特兰数的递推式打表,emmmm 就是下面这个了,这个要理解一下了0.0~下面附上代码
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #include <queue> 6 #include <vector> 7 using namespace std; 8 typedef unsigned long long ll; 9 const int N = 1e5+10; 10 ll a[30]={0}; 11 void catalan() 12 { 13 a[2] = 1; 14 a[3] = 1; 15 for(ll i=4; i<30; i++) 16 { 17 for(ll j=2; j<i; j++) 18 { 19 a[i] += a[j]*a[i-j+1]; 20 } 21 } 22 } 23 int main() 24 { 25 catalan(); 26 ll n; 27 while(~scanf("%lld", &n)) 28 { 29 cout<<a[n]<<endl; 30 } 31 return 0; 32 }