版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qiaoermeng/article/details/53325102
区域赛系列一多边形划分
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
Give you a convex(凸边形), diagonal n-3 disjoint divided into n-2 triangles(直线), for different number of methods, such as n=5, there are 5 kinds of partition method, as shown in Figure
输入
The first line of the input is a n (1<=n<=1000), expressed n data set.
The next n lines each behavior an integer m (3<=m<=18), namely the convex edges.
输出
For each give m,, output how many classification methods.
example output: Case #a : b
样例输入
3
3
4
5
样例输出
Case #1 : 1
Case #2 : 2
Case #3 : 5
卡特兰数
#include<stdio.h>
void catl(long long int *p)
{
p[0]=1;
p[1]=1;
for(int i=2; i<20; i++)
{
p[i]=p[i-1]*(4*i-2)/(i+1);
//printf("p[%d]=p[%d]*%d/%d\n",i,i-1,(4*i-2),(i+1));
}
}
int main()
{
long long int a[20];
catl(a);
int n,t;
while(~scanf("%d",&t))
{
for(int i=1; i<=t; i++)
{
scanf("%d",&n);
printf("Case #%d : %lld\n",i,a[n-2]);
}
}
return 0;
}