现在的位置: 首页 > 综合 > 正文

poj1833 排列

2018年02月20日 ⁄ 综合 ⁄ 共 366字 ⁄ 字号 评论关闭

next_permutation()函数的使用。

提交的时候 G++会超时, C++能过。

#include <cstdio>
#include <algorithm>
using namespace std;

int a[1040];

int main()
{
    int n, k, i, t;
    scanf("%d", &t);
    while (t--) {
        scanf("%d%d", &n, &k);
        for (i = 0; i < n; i++) scanf("%d", &a[i]);
        i = 0;
        while (true) {
            if (i == k) break;
            if (!next_permutation(a, a + n)) {
                for (int j = 0; j < n; j++) a[j] = j + 1;
            }
            i++;
        }
        for (i = 0; i < n - 1; i++) printf("%d ", a[i]);
        printf("%d\n", a[i]);
    }
    return 0;
}

抱歉!评论已关闭.