poj1731 next_permutation

来源:互联网 发布:泉州数据分析培训 编辑:程序博客网 时间:2024/06/12 03:39
/** * poj1731 字典序(next_permutation) * 其实用DFS也可以,一样用一维的标志位数组就可以标识字母是否出现过了, * 在一级深度遍历完并恢复了v[i]=false之后,while(s[i] == s[i+1]) i++,把连续的相同字母都跳过就可以了, * 而之前第一个字母DFS过的,就已经包含了需要的序列 * 当然,我这里用的next_permutation的方法就不需要这么麻烦 */#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char input[201];int main(){    scanf("%s",input);    sort(input,input+strlen(input));    printf("%s\n",input);    while(next_permutation(input,input+strlen(input))){        printf("%s\n",input);    }    return 0;}

0 0
原创粉丝点击