从M个数中选K个数进行全排列

#include <algorithm>
using namespace std;
#define N 100001
int aa[N], bb[N], ans; int M, K;
void Print()
{
    
    
    for (int i = 1; i <=K; i++)
    {
    
    
        cout << bb[i] << " ";
    }
    cout << endl;
}
void dfs(int x,int h)
{
    
    
    if (x > K) {
    
     Print(); return; }
    for (int i = h + 1; i < M; i++)
    {
    
    
        bb[x] = aa[i]; int k = i;
        dfs(x + 1,k);
    }
}
int main()
{
    
    
    cin >> M >> K;
    for (int i = 0; i < M; i++)
        cin >> aa[i];
    dfs(1,-1);
    cout << ans;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_51721904/article/details/121944420