1 条题解

  • -1
    @ 2026-9-17 15:50:41

    #include <bits/stdc++.h>

    using namespace std;

    int n, k;

    int ans[15];

    bool vis[15];

    void dfs(int x) {

    if (x == k + 1) {

    for (int i = 1; i <= k; i++)
    		
      cout << ans[i] << " ";
    
    cout << endl;
    	
    return ;
    

    }

    for (int i = 1; i <= n; i++) {

    if (vis[i]) continue;
    	
    vis[i] = 1;
    	
    ans[x] = i;
    	
    dfs(x + 1);
    	
    vis[i] = 0;
    

    }

    }

    int main() {

    cin >> n >> k;

    dfs(1);

    return 0;

    }

  • 1

枚举排列(递归实现排列型枚举)

信息

ID
12733
时间
1000ms
内存
128MiB
难度
3
标签
递交数
372
已通过
125
上传者