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)\)。

浙公网安备 33010602011771号