题面 题意: 给你一个括号序列,其中某些位置不确定,给你每个不确定位置上填0和填1的代价ai,bi
a
i
,
b
i
,求使得括号序列匹配的最小代价和. 题解: 考虑将(用1代替,)用-1代替. 先不考虑括号序列匹配的限制,先考虑序列总和为0. 显然我们可以先把不确定的位置赋为-1,再挑选ai−bi
a
i
−
b
i
最小的若干个-1将其改为1. 再考虑加入括号序列匹配的限制,即任何一个位置的前缀和都必须非负. 同样先把不确定的位置赋为-1,再从左到右扫描一遍,若当前位置前缀和小于零,则在之前选择ai−bi
a
i
−
b
i
最小的一个-1将其变为1,用堆维护即可. Code