CF1914B Preparing for the Contest 题解
原题传送门
题目大意:
输入
解题思路:
我们可以试着举一个较简单的例子,如当 4 5 6 3 2 1 。这个序列满足上面的条件,还可以进行归纳:
- 令此序列为
a - 从左往右数
1\sim k+1 个数,满足a_{i}<a_{i+1} - 从左往右数
k+2\sim n 个数,满足a_{i}>a_{i+1} - 全序列中,
a_{1}= a_{k+2}+1
但是,
顺着归纳的式子,便可以轻松码出来啦!
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k,t;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>k;
if(k==n-1)
{
for(int j=1;j<=n;j++)
cout<<j<<" ";
cout<<endl;
}
else if(k==0)//特判
{
for(int j=n;j>=1;j--)
cout<<j<<" ";
cout<<endl;
}
else
{
for(int j=n-k;j<=n;j++)//递增
{
cout<<j<<" ";
}
for(int j=n-k-1;j>=1;j--)//递减
{
cout<<j<<" ";
}
cout<<endl;
}
}
return 0;//好习惯
}