CF1264D2 Beautiful Bracket Sequence (hard version) 题解

括号深度的本质,其实就是删除若干个字符以后使得左边一半全是 (,右边一半全是 ),最终 ( 的个数的最大值。

那么就一定存在一个位置使得在这个位置以及之前的字符中 ( 的个数等于这个字符后 ) 的个数。

考虑枚举这个位置,记它左边的 ( 的个数为 \(a\)? 的个数为 \(x\),右边的 ) 的个数为 \(b\)? 的个数为 \(y\),那么易得这个位置对答案的贡献为:

\[\sum_{i=0}^x(i+a){x\choose i}{y\choose i+a-b} \]

然后就可以通过这题的弱化版了。考虑把括号拆开,两个分别算贡献。对于第一部分:

\[\begin{aligned} &\sum_{i=0}^xi{x\choose i}{y\choose i+a-b}\\ =&\sum_{i=0}^xx{x-1\choose i-1}{y\choose i+a-b}\\ =&x\sum_{i=0}^x{x-1\choose i-1}{y\choose y-a+b-i}\\ =&x{x+y-1\choose y-a+b-1} \end{aligned} \]

对于第二部分:

\[\begin{aligned} &\sum_{i=0}^xa{x\choose i}{y\choose i+a-b}\\ =&a\sum_{i=0}^x{x\choose i}{y\choose y-a+b-i}\\ =&a{x+y\choose y-a+b} \end{aligned} \]

最后两个求一下和就做完了,时间复杂度 \(\mathcal{O}(n)\)

posted @ 2024-03-09 16:42  zifanwang  阅读(17)  评论(0)    收藏  举报