不难注意到 kk 必须为偶数,且当 p={n,n1,n2,,1}p = \{n,n-1,n-2,\cdots,1\}i=1npii\sum \limits_{i = 1}^n |p_i - i| 取到最大值。

不妨令初始时 p={1,2,3,,n}p = \{1,2,3,\cdots,n\} 。不难发现若k2(n1)k \leq 2(n-1) ,那么我们只要交换p1,pk2+1p_1,p_{\frac k 2 + 1} 即可。若k>2(n1)k > 2(n - 1) ,我们令 p1=n,pn=1p_1 = n , p_n = 1 后将问题转换为令 $\sum \limits_{i = 2}^{n - 1} |p_i - i| = k - 2(n-1)$ ,这显然等价于 n=n2,k=k2(n1)n' = n - 2, k' = k - 2(n-1) 时的原问题,递归求解即可。

1 条评论

  • @ 2024-7-3 21:58:57

    我代码写的是抽象做法,和题解无关

    • 1