P10393 数学 构造

为了方便,令 \(\operatorname{nxt}(x)\)\(x\) 后一位的下标,即

\[\begin{cases} x + 1 &x < n \\ 1 &x = n \end{cases} \]


根据题目,可以得出 \(a_i = 2w_i - a_{\operatorname{nxt}(i)}\)

\(a_{\operatorname{nxt}(i)}\) 的式子递归代入 \(a_i\),得

\[\begin{aligned} a_1 &= 2w_1 - 2w_2 + 2w_3 - \cdots - 2w_{n - 1} + 2w_n - a_1 \\ 2a_1 &= 2w_1 - 2w_2 + 2w_3 - \cdots - 2w_{n - 1} + 2w_n \end{aligned} \]

则有

\[a_1 = w_1 - w_2 + w_3 - \cdots - w_{n - 1} + w_n \]

对于上式中的 \(w_i\),当 \(2 \nmid i\) 时系数为 \(+1\)\(2 \mid i\) 时系数为 \(-1\)。由于 \(2 \nmid n\),最后一项的系数一定为 \(+1\)

先对 \(w\) 从小到大排序得到 \(p\)。由于 \(w'\)\(w''\) 一定是 \(w\) 的重排列,很容易想出:

  • 当要求 \(a_1\) 最大时,将 \(p\) 的前 \(\left\lfloor \dfrac n 2 \right\rfloor\) 位安排在下标为偶数的位置,使得减去的值最小;将 \(p\) 剩下的 \(\left\lfloor \dfrac n 2 \right\rfloor + 1\) 位安排在下标为奇数的位置,使得加上的值最大。

  • 当要求 \(a_1\) 最小时,将 \(p\) 的后 \(\left\lfloor \dfrac n 2 \right\rfloor\) 位安排在下标为偶数的位置,使得减去的值最大;将 \(p\) 剩下的 \(\left\lfloor \dfrac n 2 \right\rfloor + 1\) 位安排在下标为奇数的位置,使得加上的值最小。

代码

posted @ 2024-07-12 11:16  Carrot-Meow~  阅读(8)  评论(0)    收藏  举报