2. 第k个排列

2. 第k个排列

XJOI - 题目ID:7978必做题100分

最新提交:0 分

历史最高:0 分

时间限制: 200ms

空间限制: 32000kB

题目描述

时间:0.2 空间:32M

题目描述:

我们将所有的全排列按照如下规则进行排序:

如果长度不同,那么长度小的排前面;否则,字典序小的排前面。

请找到按照这个规则排序得到的第n 个排列。

输入格式:

一个正整数表示 n。

输出格式:

一个序列表示答案。

样例输入1:

6

样例输出1:

2 1 3

约定:

1<=n<=400000

提示:
哪位大佬能告诉我怎么写啊

4 个赞

强烈推荐dfs

3 个赞

dfs遍历数字
关键代码

	for(int i=1; i<=n; i++){
		if(vis[i]<1){
			vis[i]=1;
			a[x]=i;
			dfs(x+1);
			vis[i]=0;
		}
	}
4 个赞