一、题目描述:
【问题描述】
圆周上有N个点。连接任意多条(可能是0条)不相交的弦(共用端点也算相交)共有多少种方案?
例如:n =4时,f(n)=9。方案如图
输入:
文件只有一行为一个正整数n
输出:
输出文件只有一个整数,方案数(由于结果可能很大,你只需要输出这个答案mod 12345的值。)
Sample Input
4
Sample Output
9
More Info
数据规模:1<=N<=1000
二、代码:
#include <iostream>
typedef long long ll;
using namespace std;
ll n,f[1001]={0};
int main()
{
cin>>n;
f[0]=1;
f[1]=1;
f[2]=2;
for(int j=3;j<=n;j++)
{
for(int i=0;i<=j-2;i++)
{
f[j]+=f[i]*f[j-i-2];
if(f[j]>=12345) f[j]%=12345;
}
f[j]+=f[j-1];
if(f[j]>=12345) f[j]%=12345;
}
cout<<f[n]<<endl;
return 0;
}