P6187 [NOI Online #1 提高组] 最小环
题目描述
给定一个长度为 $n$ 的正整数序列 $a_i$,下标从 $1$ 开始编号。我们将该序列视为一个首尾相邻的环,更具体地,对于下标为 $i$, $j(i \leqslant j)$ 的两个数 $a_i$, $a_j$,它们的距离为 $\min(j-i, i+n-j)$。
现在再给定 $m$ 个整数 $k_1$, $k_2$,..., $k_m$,对每个 $k_i(i=1$, $2$,..., $m)$,你需要将上面的序列 $a_i$ 重新排列,使得环上任意两个距离为 $k_i$ 的数字的乘积之和最大。
输入格式
无
输出格式
无
说明/提示
#### 输入输出样例 1 解释
- $k=0$ 时:答案为每个数平方的和。
- $k=1$ 时:一种最优方案:$\{3,1,2,4,6,5\}$。答案为 $3 \times 1 + 1 \times 2 + 2 \times 4 + 4 \times 6 + 6 \times 5 + 5 \times 3 = 82$。
- $k=2$ 时:一种最优方案:$\{3,6,1,4,2,5\}$。答案为 $3 \times 1 + 1 \times 2 + 2 \times 3 + 6 \times 4 + 4 \times 5 + 5 \times 6 = 85$。
- $k=3$ 时,一个合法的排列是 $1,5,3,2,6,4$ ,答案为 $88$。注意这里答案不是 $44$。
---
#### 数据范围与提示
对于所有测试数据:$1 \leqslant m \leqslant n \leqslant 2 \times 10^5$,$0 \leqslant k \leqslant \lfloor n/2\rfloor$,$1 \leqslant a_i \leqslant 10^5$。
| 测试点编号 | $n \leqslant$ | 特殊性质|
| :--- | :--- | :--- |
| 1 | $10$ | 无 |
| 2 | $18$ | 无 |
| 3 | $36$ | $n$ 为偶数且 $m=1$,$k=2$ |
| 4,5 | $1000$ | $m \leqslant 10$,$k=1$ |
| 6 | $50$ | $m \leqslant 10$,$k \leqslant 2$ |
| 7,8 | $3000$ | 无 |
| 9,10 | $2 \times 10^5$ | 无 |