首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(结合数学3.1.1.2)UVA 10098Generating Fast(使用字典序思想产生所有序列)

2013-10-10 
(组合数学3.1.1.2)UVA 10098Generating Fast(使用字典序思想产生所有序列)/* * UVA_10098.cpp * *Created

(组合数学3.1.1.2)UVA 10098Generating Fast(使用字典序思想产生所有序列)

/* * UVA_10098.cpp * *  Created on: 2013年10月8日 *      Author: Administrator */#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;char s[11];int l;bool get() {int i = l - 1;int j;while (i > 0 && s[i - 1] >= s[i]) {--i;}if (!i) {return 0;}int mp = i;for (j = i + 1; j < l; ++j) {if (s[i - 1] >= s[j]) {continue;}if (s[mp] > s[j]) {mp = j;}}swap(s[mp], s[i - 1]);sort(s + i, s + l);return 1;}int main() {int t;scanf("%d", &t);while (t--) {scanf("%s", s);l = strlen(s);sort(s, s + l);printf("%s\n", s);while (get()) {printf("%s\n", s);}printf("\n");}return 0;}

热点排行