题目来源:http://poj.org/problem?id=1833
这一题主要是STL算法中next_permutation(),求全排列函数的应用:
/*
** 这一题STL,next_permutation(首地址,末地址)的应用,这个函数的意思是求得下一次排列
*/
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
//m 是测试案例
//n 是排列数
//k 是下k个排列
int m,n,k;
int i,j;
int data[1024];
scanf("%d",&m);
for(i=0;i<m;i++)
{
memset(data,0,sizeof(data));
scanf("%d%d",&n,&k);
for(j=0;j<n;j++)
{
scanf("%d",&data[j]);
}
//这一题的关键也就这个函数
for(j=0;j<k;j++)
{
next_permutation(data,data+n);//求得下K个排列
}
for(j=0;j<n-1;j++)
{
printf("%d ",data[j]);
}
printf("%d/n",data[j]);
}
return 0;
}