问题描述:求1,2,3,4,5,6,7,按顺序入栈,3第一个出栈的出栈序列数
方法:枚举最后一个出栈的数,递推求解
g[i]表示方案数
f[i]表示1——i按顺序入栈的出栈序列数
铺垫:1——i按顺序入栈的出栈序列数为卡特兰数:C(2n,n)/(n+1)
1 2 3
g[3]=1
1 2 3 4
最后一个出栈的只可能有1,4
g[4]=f[2]+g[3]*f[0]
g[5]+f[3]+g[3]*f[1]+g[4]*f[0]
……
所以g[7]=90
问题描述:求1,2,3,4,5,6,7,按顺序入栈,3第一个出栈的出栈序列数
方法:枚举最后一个出栈的数,递推求解
g[i]表示方案数
f[i]表示1——i按顺序入栈的出栈序列数
铺垫:1——i按顺序入栈的出栈序列数为卡特兰数:C(2n,n)/(n+1)
1 2 3
g[3]=1
1 2 3 4
最后一个出栈的只可能有1,4
g[4]=f[2]+g[3]*f[0]
g[5]+f[3]+g[3]*f[1]+g[4]*f[0]
……
所以g[7]=90