CF483C Diverse Permutation

题意

构造一个长度为 (n) 的排列,使得相邻的两个数的差值绝对值有 (k) 种。

题解

构造题。
考虑先做出 (k) 个数字的答案,然后剩下的数字可以直接顺序排列,差值都是 (1)
于是可以这样:先隔一位从小到大填,填到末尾再回来从第二个从大到小填,也就是形如 (18273645) 这种。
本质上是每次按照奇偶位置决定加减数值。
看 yjx 的分享,还有这样一个结论:对于一个长度为n的数列,如果构造成一个形如1,-2,3,-4,…的数列,它的n个前缀和%n的结果互不相同。(前缀和完全同余系的构造)

原文地址:https://www.cnblogs.com/conprour/p/15532954.html