快速读题
给出一个序列,使其满足\(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;
}