题解 CF482A Diverse Permutation
Posted zdsrs060330
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 CF482A Diverse Permutation相关的知识,希望对你有一定的参考价值。
看题解之前,希望大家先自己列张表,会发现规律哦~
用递归
#include<bits/stdc++.h>//万能头文件
using namespace std;
int a[100005];//保存答案,当然你也可以直接输出(假如你能做到的话)
int hhh(int N,int K)
{
if(N-K>=2)
{
a[N]=N;
hhh(N-1,K);
}
/* 例如n=4 k=3时,数列可以是:1 4 2 3
而n=5 k=3时 是:1 4 2 3 5
*/
else
{
a[1]=1;
for(int i=2;i<=N;i++)
{
if(i%2==0)
a[i]=a[i-1]+K;//别看我,看?
else
a[i]=a[i-1]-K;//别看我,看?
K--;
}
/* 比如n=2 k=1时:1 2
3 2时:1 3 2
4 3时:1 4 2 3
5 4时:1 5 2 4 3
*/
}
return 0;
}
int main()
{
int n,k;
cin>>n>>k;//读入
hhh(n,k);//看?啦
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;//输出
return 0;
}
其实只要列张表就懂了,是不是后悔看题解了呢~
以上是关于题解 CF482A Diverse Permutation的主要内容,如果未能解决你的问题,请参考以下文章