专栏文章

P11987 题解

P11987题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mipqjhm7
此快照首次捕获于
2025/12/03 16:18
3 个月前
此快照最后确认于
2025/12/03 16:18
3 个月前
查看原文
考虑把序列转成括号序列,每个值的第一个位置是左括号,第二个位置是右括号。
发现一种方案 (x,y)(x,y) 无解当且仅当 xxyy 的括号对不交且 yyxx 前面,也就是说,答案仅与不相交的括号对有关,而后者等价于每个左括号左边的右括号的出现次数之和。
考察一次交换操作,如果现在答案 <n2<n^2 那么必然存在右括号在左括号左边,也必然存在相邻的两个位置,左边是右括号,右边是左括号。交换它们可以使总数 +1+1,且不存在更优的方案。
按照最优的操作方式,每一步恰好使得总数 +1+1。这样我们就可以做了,用树状数组维护左括号和右括号的出现位置,动态修改即可。
我们求出的是使得交换之前总数为 xx 的最小代价 fxf_x,从小到大令 fxmin{fx,fx1+X}f_x\leftarrow \min\{f_x,f_{x-1}+X\} 即可求出答案。
时间复杂度 O(nlogn+m)O(n\log n+m)

评论

1 条评论,欢迎与作者交流。

正在加载评论...