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