next_permutation的使用

来源:互联网 发布:动画模型制作软件 编辑:程序博客网 时间:2024/05/21 06:11

http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_permutation

在暴力的时候用这个函数可以使得代码看起来简洁很多。

例如 : LightOJ 1023 - Discovering Permutations

CODE :

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int a[1005];void solve(int n, int k) {    for (int i = 0; i < n; i++) a[i] = i;    int cnt = 0;    do {        for (int i = 0; i < n; i++)printf("%c", a[i] + 'A'); printf("\n");        if (++cnt == k)break;    }while (next_permutation(a, a + n));}int main() {    int T, n, k; scanf("%d", &T);    for (int cas = 1; cas <= T; cas++) {        scanf("%d%d", &n, &k);        printf("Case %d:\n", cas);        solve(n, k);    }    return 0;}

很重要的一点就是不容易写错

另外相对的还有prev_permutation函数。

0 0
原创粉丝点击