括号深度的本质,其实就是删除若干个字符以后使得左边一半全是 (
,右边一半全是 )
,最终 (
的个数的最大值。
那么就一定存在一个位置使得在这个位置以及之前的字符中 (
的个数等于这个字符后 )
的个数。
考虑枚举这个位置,记它左边的 (
的个数为 \(a\)、?
的个数为 \(x\),右边的 )
的个数为 \(b\)、?
的个数为 \(y\),那么易得这个位置对答案的贡献为:
然后就可以通过这题的弱化版了。考虑把括号拆开,两个分别算贡献。对于第一部分:
\[\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)\)。
标签:Beautiful,字符,题解,sum,个数,version,choose,aligned From: https://www.cnblogs.com/zifanoi/p/18062927