【题解】P16958 [SCCPC 2026] 括号序列

https://www.luogu.com.cn/problem/P16958

对于 \(s\)\(t\) 的前缀的情况是容易统计的。
考虑 \(s\) 在第 \(B\) 位上比 \(t\) 小,且 \(s\) 的前 \(B\) 位中有 \(A\) 个左括号。
那么合法的 \(s\)\(f(A,B)=\sum_{l=0}^{\frac{n}{2}} \binom{2l-B}{l-A}-\binom{2l-B}{l-A-1}\)
裂组合数得到:\(f(A,B)=\sum_{l=0}^{\frac n 2} \binom{2l-B-1}{l-A}+\binom{2l-B-1}{l-A-1}-\binom{2l-B-1}{l-A-1}-\binom{2l-B-1}{l-A-2}=\sum_{l=0}^{\frac n 2 } \binom{2l-B-1}{l-A}-\binom{2l-B-1}{l-A-2}=f(A,B+1)+f(A+1,B+1)\)
当然,要注意当组合数上指标是 0 的边界情况,可以认为:\(f(A,2A+1)=0\),而 \(f(A,2A)=f(A+1,2A+1)+1\)

再考虑

\[\begin{aligned} f(A,B)-f(A+1,B+2)=&\sum_{l=0}^{\frac n 2} \binom{2l-B}{l-A}-\binom{2l-B}{l-A-1}-\left(\sum_{l=0}^{\frac n 2} \binom{2l-2-B}{l-1-A}-\binom{2l-2-B}{l-1-A-1}\right)\\ =&\sum_{l=0}^{\frac n 2} \binom{2l-B}{l-A}-\binom{2l-B}{l-A-1}-\left(\sum_{l=0}^{\frac n 2 -1} \binom{2l-B}{l-A}-\binom{2l-B}{l-A-1}\right)\\ =&\binom{n-B}{\frac{n}{2}-A}-\binom{n-B}{\frac{n}{2}-A-1} \end{aligned} \]

于是,如果我们维护 \(X=f(a,b),Y=f(a,b+1)\),可以递推到 \(f(a+1,b+1)\)\(f(a,b+1)\),时间复杂度 \(O(n)\)

posted @ 2026-07-11 17:22  TallBanana  阅读(12)  评论(0)    收藏  举报