CF483C Diverse Permutation

题意

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

题解

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

posted @ 2021-11-10 12:26  conprour  阅读(46)  评论(0编辑  收藏  举报