#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
int n,m,i,s[1010];
while(scanf("%d%d",&n,&m)!=EOF){
for(i=0;i<=n-1;i++)s[i]=i+1;
int num=1;
while(next_permutation(s,s+n)){
num++;
if(num==m)break;
}
printf("%d",s[0]);
for(i=1;i<=n-1;i++)printf(" %d",s[i]);
printf("\n");
}
return 0;
}这道题考了next_permutation函数的使用,求的是当前排列的下一个排列,下面是别人的博客,讲了使用方法
http://blog.youkuaiyun.com/ac_gibson/article/details/45308645
本文通过一个具体的C++程序示例介绍了next_permutation函数的使用方法。该函数用于寻找当前排列的下一个字典序排列,适用于回溯算法等问题中。文章提供了一个完整的代码示例并解释了其工作原理。
476

被折叠的 条评论
为什么被折叠?



