CF482A Diverse Permutation

https://www.luogu.com.cn/problem/CF482A
构造
黄色题
 
思路:

对于这道题 我们可以直接构造一个序列满足k

我们首尾交替,肯定能够得到k-1个不同的差值绝对值

然后后面的全部选1,我们的序列就是正确的


#include<cstdio>
#include<algorithm>
using namespace std;
int a[100005],n,k;
int main(){
    scanf("%d %d",&n,&k);
    for(int i=1,l=1,r=n;i<=k;++i)
    {
        if(i&1)    a[i]=l,++l; i&1就等于 i%2==1
        else    a[i]=r,--r;
    }
    for(int i=k+1;i<=n;++i)
    {
        if(k&1)    a[i]=a[i-1]+1;
        else    a[i]=a[i-1]-1;
    }
    for(int i=1;i<=n;++i)    printf("%d ",a[i]);
    return 0;
}

 

posted @ 2022-08-11 15:56  -イレイナ  阅读(36)  评论(0)    收藏  举报