不得不说一句,这题在$AtCoder$里算一道水题
但是我时间空间都被同桌巨佬爆踩,还是水得不行啊
首先分类讨论,假设我们把最大值的球涂成蓝色
最小值的球涂成红色,那么我们可以贪心
把每个袋子里面较大值的球涂成蓝色,较小值的球涂成红色
$O$ $($ $n$ $)$就可以求出红蓝球区间的最大差值的最小值
但是这样不一定能使$ans$最小,接着来看另一种情况
最小值的球也涂成蓝色,这样$Bmax$ $-$ $Bmin$就已经确定了
那么我们就要让红球的区间最大差值最小
所以我们可以在上面的基础上
按照$x$从小到大的顺序,把颜色依次翻转
在翻转的过程中$O$ $($ $n$ $)$求出红球区间的最大差值的最小值
最后我们只要把两种答案再取最小值,就是最后的$ans$
1 |
|