CF1264D2 Beautiful Bracket Sequence (hard version) 題解

zifanwang發表於2024-03-09

括號深度的本質,其實就是刪除若干個字元以後使得左邊一半全是 (,右邊一半全是 ),最終 ( 的個數的最大值。

那麼就一定存在一個位置使得在這個位置以及之前的字元中 ( 的個數等於這個字元後 ) 的個數。

考慮列舉這個位置,記它左邊的 ( 的個數為 \(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)\)

相關文章