next_permutation
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int N, m;
cin >> N;
while(N--) {
cin >> m;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
do {
for(int i = 0; i < m; ++i) cout << a[i];
cout << endl;
} while (next_permutation(a, a+m));
//这里的a+m意思对a[0]到a[m-1]个元素排序
}
}当next_permutation(a, a+m)时,m = 3时,输出123,132,213,231,312与321,当m = 2时,输出12,21;
如果将a+m换成a+m-1,对于m = 3时,会输出123与213,对于m = 2时,只会输出12;
题目:
南阳OJ 第366题
版权声明:本文为aston5128原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。