B. Preparing for the Contest

发布时间 2023-12-20 18:50:33作者: 纯粹的

原题链接

快速读题

给出一个序列,使其满足\(a[i]>a[i-1],i>1\)成立的次数恰好为k

思路

只要满足条件的序列都算作成立,我们就可以特殊化
先做出一个单增序列,由于前半部分所有元素都满足条件,所以前半部分保留(k+1)个元素,翻转后(n-k-1)个元素
但是sort默认升序,所以我们倒着赋初值,操作同上反反

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,k;
        cin>>n>>k;
        int a[55]={0};
        for(int i=1;i<=n;i++)a[i]=n-i+1;
        sort(a+1,a+k+2);
        for(int i=1;i<=n;i++)cout<<a[i]<<" ";
        puts("");
    }
    return 0;
}