法一:看这篇题解
这种几何意义的转化在看到绝对值的时候一定要有肌肉记忆
法二:代数法
最多交换一次,肯定考虑答案的增量
先按\(a\)排序(因为是绝对值,我们先让一维有序之后考虑消掉绝对值符号)
枚举\(i\),考虑\(j\)(\(1≤j<i\)),交换\(i,j\)之后增量为\(\delta=b_i-a_j-c_j+|a_i-b_j|-c_i\),其中\(c_i=|a_i-b_i|\)
分类讨论:
1.\(a_i≥b_j\),\(\delta=b_i+a_i-c_i-(a_j+b_j+c_j)\),注意\(c_j\)是有意义的,有\(\delta=b_i+a_i-c_i-2max(a_j,b_j)\)
2.\(a_i<b_j\),\(\delta=b_i+a_i-c_i+b_j-a_j-c_j=b_i-a_i-c_i\)(注意到此时\(a_j<a_i<b_j\),因为我们最开始排了序的)
所以我们考虑第一种情况就好了。这里可以用树状数组维护最值,不会用到可加性这个性质
当然,还有可能是没有交换的这种情况,不要漏掉了
标签:Beauty,交换,绝对值,delta,考虑,Absolute From: https://www.cnblogs.com/dingxingdi/p/18062748