题解 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的主要内容,如果未能解决你的问题,请参考以下文章

Diverse Garland

D. Diverse Garland

A - Diverse Team

CF1512D Corrupted Array 题解

Gemini: Elastic SNARKs for Diverse Environments

题解CF519E