不相交弦

来源:互联网 发布:python渗透测试 编辑:程序博客网 时间:2024/04/29 23:39

2860【问题描述】

  圆周上有N个点。连接任意多条(可能是0条)不相交的弦(共用端点也算相交)共有多少种方案?

【输入格式】

  一个整数N,表示圆上点的数目

【输出格式】

  一个整数,表示方案数 mod 12345 的结果

【输入样例】

4

【输出样例】

9

【样例解释】

时间限制:1秒 内存限制:64M

【数据范围】

n<=1000

此题就是一道卡特兰数的题,考虑一条边的连法,这样就分成了2部分,可以当做卡特兰数了。

#include<cstdio>#include<cstdlib>#include<iostream>#include<cstring>using namespace std;const int maxn=1005;const int mod=12345;int m,n;long long d[maxn]={0};long long dfs(int x){    if(x<2) return 1;    if(d[x]) return d[x];    for(int i=0;i<x;i++)    d[x]=(d[x]+dfs(i)*dfs(x-i-2)%mod)%mod;    return d[x];}int main(){    scanf("%d",&n);    cout<<dfs(n)<<endl;    return 0;}
1 0
原创粉丝点击