这部分基础教学可以看我们学校老师写的教程,传送门
题目要求:
给定n个数字,从1到n,要求输出第m小的序列
算法思路:
先生成123...n最小的字典序,再用next_permutation一个个生成字典序更大的序列。
实现代码:
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++) a[i]=i;
int count=1;
do{
if(count==m) break;
count++;
}while(next_permutation(a+1,a+n+1));
for(int i=1;i<n;i++) cout<<a[i]<<" ";
cout<<a[n];
return 0;
}