洛谷P1722 矩阵 II

题目背景

usqwedf 改编系列题。

题目描述

如果你在百忙之中抽空看题,请自动跳到第六行。

众所周知,在中国古代算筹中,红为正,黑为负……

给定一个1*(2n)的矩阵(usqwedf:这不是一个2n的队列么),现让你自由地放入红色算筹和黑色算筹,使矩阵平衡[即对于所有的i(1<=i<=2n),使第1~i格中红色算筹个数大于等于黑色算筹]

问有多少种方案满足矩阵平衡。

见样例解释。

输入输出格式

输入格式:

 

正整数 n

 

输出格式:

 

方案数t对100取模

 

输入输出样例

输入样例#1: 复制
2
输出样例#1: 复制
2

说明

样例解释: 红 黑 红 黑

红 红 黑 黑

1<=n<=100

 

卡特兰数

 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 int 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])%100;
19     printf("%d",dp[n]);
20     return 0;
21 }

 

posted @ 2017-10-24 19:39  自为风月马前卒  阅读(237)  评论(0编辑  收藏  举报

Contact with me