博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

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     }

 


 


posted @ 2018-07-27 13:08  呦呦哟  Views(278)  Comments(0Edit  收藏  举报
Live2D