题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1027
题意就是要把1到n的所有排列按字典排序(升序)定义为由小到大。1 2 3 4 5 6 ……n 为最小的排序。问第m小的排序什么样的。
/*排列问题 此题可以用C++STL的函数next_permutation来做 */ #include <iostream> #include <algorithm> using namespace std; int main() { int n, m; int i; int a[1001]; while (cin >> n >> m) { for (i = 0; i <= n; i++) a[i] = i; for (i = 1; i < m; i++) next_permutation(a+1, a+n+1); cout << a[1]; for (i = 2; i <= n; i++) cout << " " << a[i]; cout << endl; } return 0; }