C. Tree Generator™
容易发现树上一条路径一定形如 ))...)((...(
。也就是对于任意子段,去掉匹配了的括号后还剩下的部分。而这个东西还是不太好表示,我们有如下引理:
这个值等于 \(\max\limits_{k=l}^{r-1}s_{k+1,r}-s_{l,k}\),其中 \(s_{i,j}\) 代表把
(
看成 \(1\),)
看成 \(-1\) 后区间 \([i,j]\) 的和。
证明 一定可以找到最后一个 )
,当 \(k\) 取到这个位置时 \(s_{k+1,r}-s_{l,k}\) 显然就是答案。接下来证明这个值是最大的。在这个体系里面所有被匹配掉的括号贡献都是 \(0\),最后没被匹配掉的括号,\(k\) 往左往右都会变小,得证。