时间:2021-07-01 10:21:17 帮助过:2人阅读
Diverse Permutation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Permutation p is an ordered set of integers p1,???p2,???...,???pn, consisting of n distinct positive integers not larger than n. We'll denote as nthe length of permutation p1,???p2,???...,???pn.
Your task is to find such permutation p of length n, that the group of numbers |p1?-?p2|,?|p2?-?p3|,?...,?|pn?-?1?-?pn| has exactly k distinct elements.
Input
The single line of the input contains two space-separated positive integers n, k (1?≤?k?
Output
Print n integers forming the permutation. If there are multiple answers, print any of them.
Sample test(s)
input
3 2
output
1 3 2
input
3 1
output
1 2 3
input
5 2
output
1 3 2 4 5
Note
By |x| we denote the absolute value of number x.
大致题意:给一个n和k。让找到一种1~n的排列,满足,任意相邻两数之间的差值的绝对值必须为k个不同的值。
解题思路:开始用next_permutation(a, a+n)直接生成排列,然后判断,结果TLE到死。暴力枚举搞不定,那只能构造了。详见代码
AC代码:
#include#include #include #include #include #include #include #include