5 条题解

  • 0
    @ 2024-4-8 21:16:29

    DFS即可

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 20;
    int a[N];
    int b[N];
    int n,m;
    void dfs(int x,int start){
        if (x > m) {
            for (int i = 1; i <= m; ++i) {
                printf("%d ",b[i]);
            }
            printf("\n");
            return;
        }
        for (int i = start; i <= n; ++i) {
            b[x] = a[i];
            dfs(x + 1,i + 1);
        }
    }
    int main(){
        scanf("%d %d",&n,&m);
        for (int i = 1; i <= n; ++i) {
            scanf("%d",&a[i]);
        }
        sort(a + 1, a + n + 1);
        dfs(1,1);
        return 0;
    }
    

    信息

    ID
    83
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    278
    已通过
    104
    上传者