B-Divide and Sum
题目叙述
给一个长度为 (2n) 的数组,现在要把它分为两个长度为 (n) 的数组,定义一种划分方法的权值为将其中一个从小到大排列,另一个从大到小排列后两个数组对位相减后的绝对值之和。也就是 (sum_{i=1}^n|p_i-q_i|) ,(p) 是递增的,(q) 是递减的。
题解
这题是逗乐的。
所有划分方式的结果都是一样的。考虑把配对方式画到数轴上,可以发现任何配对方式任意两个配对组成的区间要么包含要么交叉。如果存在两个配对满足既不包含也不交叉,那么一定不满足条件。这里的配对是指可以产生贡献的,也就是第一块最大与第二块最小配对。而任意两个交叉的配对方式都可以调整为包含的配对方式(不一定仍然满足条件,但是代价不变,这一步的作用就是证明代价都一样)。所以最终一定是任何两个数对都是包含关系。而任意两个配对都是包含关系的情况只有一种,那就是最大与最小,次大与次小......以此类推。所以所有方案的权值都一样。
idea
这种配对、绝对值的题画到数轴上很管用,顺便可以考虑一下是否交叉,是否包含,是否分离。