CF1898D Absolute Beauty 题解

Problem - D - Codeforces

  • emm,怎么说呢?因为想起之前那个直接去掉绝对值取最大时就是答案的影响,这题并没有想到正确做法。(或者说想到了正确做法,但是因为不知道一个性质所以要大分讨)

  • 假如原题满足 \(a_i<b_i\),则我们把原题抽象成线段 \((a_i,b_i)\),考虑两条线段合并时的情况:

  • 其中只有第一种情况会使得线段长度增加 \(2(a_i-b_j)\),因此我们只需找到 \(\max a_i-b_j\) ,只需记录 \(\max a_i\)\(\min b_j\) 即可

  • 而如果不满足 \(a_i<b_i\) 怎么办呢?我们考虑对于线段 \((a_i,b_i)\) 和线段 \((b_i,a_i)\) 和其他线段合并时,你会发现他们产生的贡献是一样的(没想到的点)

  • 因此如果 \(a_i>b_i\) 直接交换即可

  • 复杂度 \(O(n)\)

posted @ 2024-01-20 09:25  FOX_konata  阅读(10)  评论(0编辑  收藏  举报