hdu 1027 Ignatius and the Princess II (全排列)
链 接:点击打开链接
题 意:给你两个数n,m,求1 到 m全排列第m小的排列
思 路:全排列的大小是根据它的逆序数的大小
例如 n=5 1 2 3 4 5 逆序数为0 最小
1 2 3 5 4 逆序数为1
............................................
利用STL中的全排列函数next_permutation(a,a+n)
代 码:
#include<iostream> #include<algorithm> using namespace std; int main() { int n,m; while(cin>>n>>m) { int a[10005],i,sum=0; for(i=0;i<n;i++) a[i]=i+1; do { sum++; if(sum==m) break; }while(next_permutation(a,a+n)); for(i=0;i<n-1;i++) cout<<a[i]<<" "; cout<<a[n-1]<<endl; } }