next_permutation若返回false,则将数组置为字典序最小值。
#include <cstdio>
#include <algorithm>
using namespace std;
char samp[] = {‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘};
char str[10];
int main(){
int t, n, m, i;
scanf("%d", &t);
while(t--){
scanf("%d%d", &n, &m);
do{
if(!equal(samp, samp + m, str)){
copy(samp, samp + m, str);
for(i = 0; i < m; ++i) putchar(str[i]);
putchar(‘\n‘);
}
}while(next_permutation(samp, samp + n));
}
return 0;
}| 800707 | 长木 | 擅长排列的小明 | Accepted |
32 | 232 | C/C++ | 04-07 16:25:32 |
NYOJ19 擅长排列的小明【next_permutation】,布布扣,bubuko.com
NYOJ19 擅长排列的小明【next_permutation】
原文:http://blog.csdn.net/chang_mu/article/details/23113283