NYOJ19 善于排列的小明【next_permutation】

NYOJ19 擅长排列的小明【next_permutation】

原题链接

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 长木 擅长排列的小明 NYOJ19 善于排列的小明【next_permutation】Accepted 32 232 C/C++ 04-07 16:25:32