洛谷P1976 鸡蛋饼。洛谷P1976 鸡蛋饼。

题目背景

Czyzoiers 都想掌握小 x 为什么对鸡蛋饼情有独钟。经过一番逼问,小 x 道出
了真情:因为他喜欢圆。

问题背景

Czyzoiers 都想掌握小 x 为什么对鸡蛋饼情有独钟。经过一番逼问,小 x 道出
了事实:因为他喜欢圆。

问题叙述

近期小 x 又发现了一个关于完善之趣的题目:在圆上有2N 个不同之触发,小 x
想用 N 长线段将这些点连接起来(每个点只能连一久线),
使所有的线都非思交,他思念知道这么的连天方案来略种?

问题叙述

近年小 x 又发现了一个有关完善的趣之题目:在圆上有2N 个不同的点,小 x
想就此 N 漫漫线段将这些点连接起来(每个点只能连一长长的线条),
使所有的线条都无思量交,他思念了解这么的连续方案来微种?

输入输出格式

输入格式:

 

发出还只有来一个正整数 N

 

输出格式:

 

要求的方案往往(结果 mod 100000007)。

 

输入输出格式

输入格式:

 

起还只有发生一个正整数 N

 

输出格式:

 

要求的方案往往(结果 mod 100000007)。

 

输入输出样例

输入样例#1: 复制

24

输出样例#1: 复制

4057031

 

 

同时是一致鸣裸的卡特兰数

累加取模即可

 1 #include<cstdio>
 2 const int MAXN=100001;
 3 inline int read()
 4 {
 5     char c=getchar();int x=0,flag=1;
 6     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
 7     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
 8 }
 9 int n;
10 long long dp[MAXN];
11 int main()
12 {
13     n=read();
14     dp[0]=1;
15     int ans=0;
16     for(int i=1;i<=n;i++)
17         for(int j=0;j<i;j++)
18             dp[i]=(dp[i]+(dp[j]*dp[i-j-1])%100000007)%100000007;
19     printf("%lld",dp[n]%100000007);
20     return 0;
21 }

 

 

输入输出样例

输入样例#1: 复制

24

出口样例#1: 复制

4057031

 

 

再者是均等志裸的卡特兰数

添加取模即可

 1 #include<cstdio>
 2 const int MAXN=100001;
 3 inline int read()
 4 {
 5     char c=getchar();int x=0,flag=1;
 6     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
 7     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
 8 }
 9 int n;
10 long long dp[MAXN];
11 int main()
12 {
13     n=read();
14     dp[0]=1;
15     int ans=0;
16     for(int i=1;i<=n;i++)
17         for(int j=0;j<i;j++)
18             dp[i]=(dp[i]+(dp[j]*dp[i-j-1])%100000007)%100000007;
19     printf("%lld",dp[n]%100000007);
20     return 0;
21 }

 

 

相关文章