专栏文章

CF2117C Cool Partition 题解

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

文章操作

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

当前评论
1 条
当前快照
1 份
快照标识符
@mip465nf
此快照首次捕获于
2025/12/03 05:52
3 个月前
此快照最后确认于
2025/12/03 05:52
3 个月前
查看原文
不难想到贪心策略:对于每个位置,如果可以断开必定断开。
证明:假设当前位置为 ii 且可以断开。如果最优方案是在位置 jjj>ij>i)断开的话,我们可以将位置 [i+1,j][i+1,j] 并入下一段内。
根据我们的假设,这样做一定是合法的,并且由于当前段中的元素变少了,我们的总段数也一定不会变少。
最后一段是否合法也不影响,因为如果不合法,我们可以简单地将其并入前面一段,这样做不会影响总段数。
考虑实现,可以开两个 set,一个存前一段中的元素(记作集合 AA),一个存当前段中的元素(记作集合 BB)。
遍历到 aia_i 时,将其从 AA 中移除,并将其加入 BB。当 AA 为空时,即意味着可以从当前位置断开,此时更新答案并将 BB 作为新的 AA 继续遍历。
时间复杂度 O(nlogn)O(n \log n)

评论

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

正在加载评论...