题意
记$sum$为一个多重集的所有元素的和
我们这样定义一个多重集是平衡的$:$
对于$sum$的每一个数位,多重集中至少有一个元素与$sum$此数位相同
现在,给你一个a数组,有两种操作
1.修改a数组中一个位置的值
2.询问一个区间中所有不平衡多重集的sum的最小值
$\large\mathcal{Solution}$
首先,容易得到的是,一个平衡的多重集中不存在两个及以上的元素在某个数位都有值(大于0)。反过来, 一个不平衡的多重集中至少有一个数位上有两个及以上的元素有值。
如果没有修改
由不平衡多重集的这个性质可以得出,只考虑一个数位的话,sum的最小值为在该位上有值的最小的两个元素之和。
考虑多个数位的话,那答案就是$min${每个数位的sum的最小值}
知道了这点,做法就很显然了,我们可以对每一个数位建一颗线段树,维护在该位上有值的元素的最小值$Min$和次小值$Secmin$,那么答案就是$min${$Min_{i}+Secmin_{i}$}。
接下来,考虑带上修改
直接把$a_{x}$改成$y$不太容易操作,所以我们可以先把$a_{x}$变成$0$,再改成$y$。(两次单点修改)
$\large\mathcal{Code}$
1 |
|