题解:P14761 [Opoi 2025] CCD 的序列

· · 题解

先把括号转成数字:(1)-1。合法括号序列就是前缀和一直 \ge 0 且最后总和为 0

每次操作是往位置 lr 各塞一个括号。可以把原序列看成 L+M+R,其中 M[l+1, r] 这段。操作后变成 L+(+M+)+R

只有跨过插入位置的匹配会变。具体来说,就是 M 里面那些和 L 匹配的右括号,以及 M 里面那些和 R 匹配的左括号。

M 里没配对的右括号有 x 个,没配对的左括号有 y 个,答案就是 2(x+y)

怎么算 xy?用前缀和最小值 mn。如果 mn<0,说明多出来 |mn| 个右括号,所以 x = \max(0, -mn)y 就是区间和 sum 加上 x