CF1209G Into Blocks
题意:给出一个长度为
我们需要达成:如果存在
可以进行的操作:将所有的
求达成目标的最小化费。有
先来求达成目标的最小化费。
对于某种颜色
若最终要保留这种颜色,肯定要把
这样不难发现,若
我们把有交集的区间并起来,每个并中保留众数即可。
接下来考虑动态维护。
修改一个位置,可能会导致两个区间变化。
对于每个区间
现在需要维护每两个
维护区间最左端的
实际实现中需要维护最左端和最右端的最小值,以及各个最小值之间的众数和。
每次合并区间时,需要查询一次区间众数。
一般的区间众数解法较为复杂,但是本题中保证所有可能作为答案的数都在询问区间内。
那么我们给
这能够做到
考虑在线段树上额外维护左端最小值到左边界的