最大值显然能够在 $[1,2,\ldots,N]$ 和 $[N,N-1,\ldots,1]$ 取到。
当 $N$ 是偶数时,取到最大值当且仅当每对 $(a_i,b_i)$ 都由一个 $\le N/2$ 的数和 $>N/2$ 的数组成。证明:充分性显然;必要性:不妨设有一对 $\le N/2$ 的,则必有另一对 $>N/2$ 的,把两对数中的 $a$ 交换后答案严格增加。
当 $N$ 是奇数时,条件略有不同:每对 $(a_i,b_i)$ 都由一个 $\le (N+1)/2$ 和一个 $\ge (N+1)/2$ 的数组成。证明类似。
有了上述定理,就可以把问题转化为从一个 $01$ 序列变成另一个 $01$ 序列的最小交换次数。把相同的数按顺序编号,又可以转化成逆序对数。用树状数组计算即可。时间复杂度 $O(N\log N)$。当然,只有 $01$ 的情况,最小的交换次数就是两个数组对应的 $1$ 的位置的差的绝对值之和,这样就能做到 $O(N)$。