括号序列计数
1.设\(f(n,m,k)\)表示有\(n\)个左括号,\(m\)个右括号,子序列中合法括号序列最长长度为\(2k\)的括号序列,转移为
\[f(n,m,k)=
\left\{
\matrix{
{n+m}\choose n && k\ge min(n,m)\\
f(n-1,m,k-1)+f(n,m-1,k) && k<min(n,m)
}
\right.
\]
通过归纳可以得到
\[f(n,m,k)=
\left\{
\matrix{
{n+m}\choose n && k\ge min(n,m)\\
{n+m}\choose k && k<min(n,m)
}
\right.
\]
2.对于一个括号序列来说,要想构造一个最长的合法子括号序列,没有用上的右括号的数量就是前缀和的min。可以考虑像算卡特兰数那样将跨过某条斜线之后的路径全部取反。

浙公网安备 33010602011771号