读书人

(DS1.5.9)POJ 1833 排列(生成目前排列

发布时间: 2013-10-25 14:36:53 作者: rapoo

(DS1.5.9)POJ 1833 排列(生成当前排列的下一排列)

/* * POJ_1833.cpp * *  Created on: 2013年10月24日 *      Author: Administrator */#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int a[1100];int main() {int t;scanf("%d", &t);while (t--) {int n, k;scanf("%d%d", &n, &k);int i, j;for (i = 0; i < n; ++i) {scanf("%d", &a[i]);}for (i = 0; i < k; ++i) {/** * 如果这个已经是最后一个排列,则变成第一个排列 * next_permutation(a, a + n) :生成当前排列的下一个排列. * 如果返回0,则代表已经是最后一个排列.否则表示生成下一个排列成功 */if (next_permutation(a, a + n) == 0) {for (j = 0; j < n; ++j) {a[j] = j + 1;}}}for (i = 0; i < n - 1; ++i) {printf("%d ", a[i]);}printf("%d\n", a[n - 1]);}return 0;}

读书人网 >编程

热点推荐