码迷,mamicode.com
首页 > 其他好文 > 详细

题解 CF482A 【Diverse Permutation】

时间:2020-06-11 20:03:28      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:using   int   clu   文件   space   lse   for   names   include   

看题解之前,希望大家先自己列张表,会发现规律哦~

用递归

#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】

标签:using   int   clu   文件   space   lse   for   names   include   

原文地址:https://www.cnblogs.com/zdsrs060330/p/13095031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!