poj 1833
【题意】根据一个排列,按照字典排列的顺序输出它的下面k个排列。
用C++的STL库的next_permutation()函数直接生成下一个排列 就可以了 3 2 1 的下一个排列会是 1 2 3
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int p[1111]; int main() { int t,n,k; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&p[i]); while(k--) next_permutation(p,p+n); //printf("ans "); printf("%d",p[0]); for(int i=1;i<n;i++) printf(" %d",p[i]); printf("\n"); } return 0; }