POJ1833 全排列问题
分析:
此问题用到next_permutation函数则很容易
next_permutation函数是求当前排列的下一个排列
next_permutation(a,a+n);//求下一个排列
prev_permutation(a,a+n);//求上一个排列
//如果没有上一个排列或下一个排列则返回false,否则true
//还可以定义cmp来定义排列的方式next_permutation(a,a+n,cmp)
知道了这个函数那么题目就简单了很多
include<iostream>
include<iterator>
include<algorithm>
using namespace std;
const int N=1024;
int a[N];
int main()
{
int m,n,k;
cin>>m;
while(m--)
{
cin>>n>>k;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=1;i<=k;i++)
//利用STL函数库中的计算全排列的函数计算
next_permutation(a,a+n);
//如果使用cout循环输出,则出现TLE
//使用copy函数输出容器中的内容
//container<type> c;
//copy(c.begin(),c.end(),ostream_iterator<type>(cout," "));
copy(a,a+n-1,ostream_iterator<int>(cout," "));
cout<<a[n-1]<<endl;
}
return 0;
}