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 @   zifanwang  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示