P1363 火车进出栈问题
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
一列火车n节车厢,依次编号为1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。
输入格式
一个数,n(n<=30000)
输出格式
一个数s表示n节车厢出栈的可能排列方式
测试样例
输入
3
输出
5
很容易看出来是卡特兰数(别问我怎么看出来的!自己划数据!),但是数据很大(卡特兰数的一二十位就接近maxlongint了),所以我们用卡特兰数的一个通项公式来求:
f[n]=C(2n,n)/(n+1)
这样我们只需要求组合数C(2n,n)就可以啦!
program mys;
var i,j,k,m,n,x,l:longint;
f:array[0..100000]of longint;
d:array[0..100000]