C++ 的next_permutation函数,将会根据当前的序列,按照字母序的顺序,生成下一个比当前序列大的序列。函数使用:next_permutation(序列起始地址,序列结束地址),如果下一个序列比当前的大,就返回true,否则就返回false,比如,接下来的这一题:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int T;
cin >> T;
for(int i=0;i<T;i++){
int n,k;
cin >> n>>k;
int a[2000];
for(int j=0;j<n;j++){
cin >>a[j];
}
int t=0;
while(t<k){
next_permutation(a,a+n);
t++;
}
for(int j=0;j<n;j++){
cout<<a[j]<<" ";
}
cout<<endl;
}
return 0;
}